1 条题解
-
0
C++ :
#include <cstdio> /* 浓度 C = 溶质 / 体积,其中「溶质」用 Σ(v·c) 表示(等价于质量的 100 倍, 因为百分浓度 C% 下第 i 份贡献的质量是 v·c/100)。 初始:V0·C0 即初始溶质。P 直接累加;Z 撤销最后一次生效的 P(可用栈记录)。 体积恒 >= V0 >= 1,不会除零。每次操作后输出「Vi Ci(5 位小数)」。 */ static long long sv[10005], sc[10005]; int main(){ long long V, C; if(scanf("%lld %lld", &V, &C) != 2) return 0; long long S = V * C; int n; if(scanf("%d", &n) != 1) return 0; int top = 0; for(int i = 0; i < n; i++){ char op[8]; if(scanf("%s", op) != 1) break; if(op[0] == 'P'){ long long v, c; scanf("%lld %lld", &v, &c); V += v; S += v * c; sv[top] = v; sc[top] = c; top++; }else{ if(top > 0){ top--; V -= sv[top]; S -= sv[top] * sc[top]; } } printf("%lld %.5f\n", V, (double)S / (double)V); } return 0; }
- 1
信息
- ID
- 2603
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者