超级水题。。。排序后直接A了
代码如下:
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { 6 int c, n, m, p[1010], h[1010], i, j, t; 7 double sum; 8 9 scanf( "%d", &c ); 10 11 while( c -- ) 12 { 13 scanf( "%d%d", &n, &m ); 14 15 for ( i = 0; i < m; i ++ ) 16 { 17 scanf( "%d%d", p + i, h + i ); 18 } 19 20 for( i = 0; i < m; i ++ ) 21 { 22 for( j = m - 1; j > i; j -- ) 23 { 24 if( p[j] < p[j-1] ) 25 { 26 t = p[j]; 27 p[j] = p[j-1]; 28 p[j-1] = t; 29 t = h[j]; 30 h[j] = h[j-1]; 31 h[j-1] = t; 32 } 33 } 34 } 35 36 for( i = 0, sum = 0; i < m; i ++ ) 37 { 38 if( n <= h[i] * p[i] ) 39 { 40 sum += ( n + 0.0 ) / p[i]; 41 break; 42 } 43 44 sum += h[i]; 45 n -= h[i] * p[i]; 46 } 47 48 printf( "%.2lf\n", sum ); 49 } 50 return 0; 51 }