提示:多種藥水混合后的濃度=(濃度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 | } |
新聞熱點
疑難解答