Práctica PAT (nivel básico) (chino) 1020 Mooncake

1 #include <stdio.h>
 2 #include <algorithm>
 3  usando el  espacio de nombres std;
4  const  int MAXN = 1001 ;
5  struct kind {
 6      double num, price, p_price;
7  };
8  int d, n;
9  struct kind a [MAXN];
10  
11  bool cmp (tipo a, tipo b);
12  doble vuelta máxima ( int d);
13  
14  int main () {
 15      scanf ( " % d% d ", & n, & d);
16      para ( int i = 0 ; i <n; i ++) scanf ( " % lf " , & a [i] .num); 
17      para ( int i = 0 ; i <n; i ++) scanf ( " % lf " , & a [i] .price);
18      para ( int i = 0 ; i <n; i ++) a [i] .p_price = a [i] .price / a [i] .num;
19      
20      sort (a, a + MAXN, cmp);
21      doble mr = retorno máximo (d);
22      printf ( " % .2f ",señor);
23      devuelve  0 ;
24  }
 25  bool cmp (tipo a, tipo b) {
 26      return a.p_price> b.p_price;
27  }
 28  doble vuelta máxima ( int d) {
 29      int i = 0 ;
30      mr doble = 0.0 ;
31      while (d> 0 && i < n) {
 32          if (a [i] .num> d) {
 33              mr + = d * a [i] .p_price;
34              d = 0;
35              i ++ ;
36          } else {
 37              d - = a [i] .num;
38              mr + = a [i] .precio;
39              i ++ ;
40          }
 41      }
 42      retorno mr;
43 }
Ver código

El método de clasificación de la función sort (): sort (inicio, posición final junto a la función de comparación) Cuando no se necesita la función de comparación, el valor predeterminado es en orden creciente, de lo contrario, debe definir la función de comparación usted mismo.

Supongo que te gusta

Origin www.cnblogs.com/Learn-Excel/p/12711184.html
Recomendado
Clasificación