简单的模拟。
注意:在计算牛奶的平均价格时候,牛奶的体积必须是200的倍数且不比1000大。
a[ i ].before 存的是原体积
View Code
1 #include<stdio.h> 2 #include<string.h> 3 #include<stdlib.h> 4 #include<algorithm> 5 using namespace std; 6 const int maxn = 105; 7 struct node{ 8 int price; 9 int v,before; 10 double per; 11 int ok; 12 char name[ maxn ]; 13 }a[ maxn ]; 14 bool cmp( node a1,node a2 ){ 15 if( a1.per!=a2.per ) 16 return a1.per<a2.per; 17 else 18 return a1.before>a2.before; 19 } 20 int main(){ 21 int T; 22 scanf("%d",&T); 23 while( T-- ){ 24 int n; 25 scanf("%d",&n); 26 for( int i=0;i<n;i++ ){ 27 scanf("%s%d%d",a[ i ].name,&a[ i ].price,&a[ i ].v); 28 if( a[ i ].v<200 ) a[ i ].ok=-1; 29 a[ i ].before=a[ i ].v; 30 a[ i ].v=a[ i ].v-a[ i ].v%200; 31 a[ i ].v=min( 1000,a[ i ].v); 32 a[ i ].per=(1.0*a[ i ].price)/(1.0*a[ i ].v); 33 a[ i ].ok=1; 34 } 35 sort( a,a+n,cmp ); 36 for( int i=0;i<n;i++ ){ 37 if( a[ i ].ok==-1 ) continue; 38 printf("%s\n",a[ i ].name); 39 break; 40 } 41 } 42 return 0; 43 }