比赛 |
EYOI与SBOI开学欢乐赛2nd |
评测结果 |
AAAAA |
题目名称 |
个人所得税 |
最终得分 |
100 |
用户昵称 |
HeSn |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2022-09-02 21:23:55 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n, a[50010][20];
double ans = 0;
int main() {
freopen("personaltax.in", "r", stdin);
freopen("personaltax.out", "w", stdout);
char s1[100], c;
int p, m, d, x;
cin >> n;
while(scanf("%s", &s1)) {
if(s1[0] == '#') {
break;
}
cin >> p >> m >> c >> d >> x;
double y;
if(s1[0] == 'I') {
if(x > 4000) {
y = (double)x * 0.8;
}
else {
y = x - 800;
}
if(y <= 0) {
continue;
}
if(y > 20000) {
ans += 20000.0 * 0.2;
}
else {
ans += y * 0.2;
continue;
}
if(y > 50000) {
ans += 30000.0 * 0.3;
ans += (y - 50000) * 0.4;
}
else {
ans += (y - 20000) * 0.3;
}
}
else {
a[p][m] += x;
}
}
for(int i = 1; i <= n; i ++) {
for(int j = 1; j <= 12; j ++) {
a[i][j] -= 800;
if(a[i][j] <= 0) {
continue;
}
if(a[i][j] < 500) {
ans += (double)a[i][j] * 0.05;
continue;
}
ans += 500 * 0.05;
if(a[i][j] < 2000) {
ans += (a[i][j] - 500) * 0.1;
continue;
}
ans += 1500 * 0.1;
if(a[i][j] < 5000) {
ans += (a[i][j] - 2000) * 0.15;
continue;
}
ans += 3000 * 0.15;
if(a[i][j] < 20000) {
ans += (a[i][j] - 5000) * 0.2;
continue;
}
ans += 15000 * 0.2;
if(a[i][j] < 40000) {
ans += (a[i][j] - 20000) * 0.25;
continue;
}
ans += 20000 * 0.25;
if(a[i][j] < 60000) {
ans += (a[i][j] - 40000) * 0.3;
continue;
}
ans += 20000 * 0.3;
if(a[i][j] < 80000) {
ans += (a[i][j] - 60000) * 0.35;
continue;
}
ans += 20000 * 0.35;
if(a[i][j] < 100000) {
ans += (a[i][j] - 80000) * 0.4;
continue;
}
ans += 20000 * 0.4;
ans += (a[i][j] - 100000) * 0.45;
}
}
printf("%0.2f", ans);
return 0;
}