比赛 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;
}