hdu2187

超级水题。。。排序后直接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 }

 

posted @ 2013-03-17 21:06  hacker_hzh  阅读(140)  评论(0编辑  收藏  举报