80分求助
查看原帖
80分求助
1198194
zlqwq楼主2024/8/14 20:54
#include<iostream>
#include<algorithm>
#define int long long

using namespace std;
const int N = 105;
struct node {
	string name; 
	int qimuo,banji,lunwen;
	char g,w;
	bool ganbu,xisheng;
	int id;
}a[N];
int n,sum;
int dfs(node x) {
	int sum = 0;
	if(x.qimuo > 80 && x.lunwen >= 1)sum += 8000;
	if(x.qimuo > 85 && x.banji > 80)sum += 4000;
	if(x.qimuo > 90)sum += 2000;
	if(x.xisheng && x.qimuo > 85)sum += 1000;
	if(x.banji > 80 && x.ganbu)sum += 850;
	return sum;
}
bool cmp(node a,node b) {
	int suma = dfs(a);
	int sumb = dfs(b);
	if(suma != sumb)return (suma > sumb ? 0 : 1);
	else return(suma == sumb && a.id < b.id ? 0 : 1);
}
signed main() {
	cin >> n;
	for(int i = 1;i <= n;++i) {
		cin >> a[i].name >> a[i].qimuo >> a[i].banji >> a[i].g >> a[i].w >> a[i].lunwen;
		a[i].id = i;
		a[i].ganbu = (a[i].g == 'Y' ? 1 : 0);
		a[i].xisheng = (a[i].w == 'Y' ? 1 : 0); 
		sum += dfs(a[i]);
	}
	sort(a + 1,a + 1 + n,cmp);
	int pos = n;
	for(int i = 1;i <= n;++i) {
		if(dfs(a[i]) == dfs(a[n]) && i < n) {
			pos = i;
			break;
		}
	}
	cout << a[pos].name << endl << dfs(a[pos]) << endl << sum;
	return 0;
}

2024/8/14 20:54
加载中...