📄 2018.cpp
字号:
/* This Code is Submitted by wywcgs for Problem 2018 on 2006-07-23 at 16:22:46 */
#include <cstdio>
#include <algorithm>
using namespace std;
const int VN = 10240;
class Mix {
public:
bool cof;
double n, bt;
void set(bool cc, double cn, double ct) { cof = cc; n = cn; bt = ct; }
double level(int) const;
};
double Mix::level(int t) const {
double r, pt = t-bt;
if(pt < 0) r = 0;
else if(!cof) r = 8*n-pt/12.0;
else r = 2*n-pt*pt/79.0;
return max(r, 0.0);
}
int main()
{
int q[VN], i, j;
Mix mix[VN];
while(true) {
char kind[16];
int qn = 0, m = 0;
while(true)
if(scanf("%s", kind) == EOF) return 0;
else if(kind[0] == '*') break;
else if(kind[0] == 'Q') scanf("%d", &q[qn++]);
else {
double n, t; scanf("%lf %lf", &t, &n);
mix[m++].set((kind[1] == 'o'), n, t);
}
sort(q, q+qn);
for(i = 0; i < qn; i++) {
double hl = 0;
for(j = 0; j < m; j++)
hl += mix[j].level(q[i]);
printf("%d %.1lf\n", q[i], max(1.0, hl));
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -