社区讨论

0分WA求调

P1051[NOIP 2005 提高组] 谁拿了最多奖学金参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@m6arjxlb
此快照首次捕获于
2025/01/24 20:54
去年
此快照最后确认于
2025/11/04 10:43
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
struct node{
	string name;
	int qm;
	int bj;
	char gb;
	char xb;
	int lw;
	int zs;
	int bh;
}k[110];
bool cmp(node x,node y){
	if (x.zs==y.zs) return x.bh<y.bh;
	else return x.zs>y.zs;
}
int main()
{
	int n;
	cin>>n;
	for (int i=1;i<=n;i++){
		cin>>k[i].name>>k[i].qm>>k[i].bj>>k[i].gb>>k[i].xb>>k[i].lw;
		k[i].bh=i;
	}
	for (int i=1;i<=n;i++){
		if (k[i].qm>80 and k[i].lw>=1) k[i].zs+=8000;
		if (k[i].qm>85 and k[i].bj>=80) k[i].zs+=4000;
		if (k[i].qm>90) k[i].zs+=2000;
		if (k[i].qm>85 and k[i].xb=='Y') k[i].zs+=1000;
		if (k[i].bj>80 and k[i].gb=='Y') k[i].zs+=850;
	}
	int sum=0;
	for (int i=1;i<=n;i++){
		sum+=k[i].zs;
	}
	sort(k+1,k+n+1,cmp);
	cout<<k[1].name<<"\n"<<k[1].zs<<"\n"<<sum;
	return 0;
}

回复

2 条回复,欢迎继续交流。

正在加载回复...