提示:多種藥水混合后的濃度=(濃度1*體積1+濃度2*體積2+……)/(體積和)
31 100 101002 100 2420 303 100 2420 20 30Example Output
0 0.00100 0.20300 0.23Hint
hdoj2570Author
01 | #include<stdio.h> | 
02 | struct yao | 
03 | { | 
04 |     int n, v, w; | 
05 |     int p[101]; | 
06 | } a[10000]; | 
07 | int main() | 
08 | { | 
09 |     int T, i, j, k, V, flag, t; | 
10 |     double d, d2; | 
11 |     scanf("%d", &T); | 
12 |     for(i = 0; i < T; i++) | 
13 |     { | 
14 |         scanf("%d%d%d", &a[i].n, &a[i].v, &a[i].w); | 
15 |         for(j = 0; j < a[i].n; j++) | 
16 |             scanf("%d", &a[i].p[j]); | 
17 |         for(j = 0; j < a[i].n - 1; j++) | 
18 |         { | 
19 |             for(k = j + 1; k < a[i].n; k++) | 
20 |             { | 
21 |                 if(a[i].p[j] > a[i].p[k]) | 
22 |                 { | 
23 |                     t = a[i].p[j]; | 
24 |                     a[i].p[j] = a[i].p[k]; | 
25 |                     a[i].p[k] = t; | 
26 |                 } | 
27 |             } | 
28 |         } | 
29 |         if(a[i].p[0] > a[i].w) printf("0 0.00/n"); | 
30 |         else | 
31 |         { | 
32 |             d = a[i].p[0] * 0.01; | 
33 |             V = a[i].v; | 
34 |             flag = 0; | 
35 |             for(j = 1; j < a[i].n; j++) | 
36 |             { | 
37 |                 d2 = d; | 
38 |                 d = (d * V + a[i].p[j] * a[i]. v * 0.01) / (V + a[i].v); | 
39 |                 V = V + a[i].v; | 
40 |                 if(d > a[i].w * 0.01) | 
41 |                 { | 
42 |                     flag = 1; | 
43 |                     break; | 
44 |                 } | 
45 |             } | 
46 |             if(flag) printf("%d %.2lf/n", V - a[i].v, d2); | 
47 |             else printf("%d %.2lf/n", V, d); | 
48 |         } | 
49 |     } | 
50 |     return 0; | 
51 | } | 
新聞熱點
疑難解答