提示:多种药水混合后的浓度=(浓度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 | } |
新闻热点
疑难解答