社区讨论

90分求助

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

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@lycc50cc
此快照首次捕获于
2024/07/08 10:00
2 年前
此快照最后确认于
2024/07/08 11:27
2 年前
查看原帖
using namespace std;
int n,sum;
struct str{
	string name;
	char a,b;
	int sl;
	int qm,bj;
	int jxj;
}; 
str a[100+5];
bool cmp(str a,str b){
	return a.bj>b.bj;
	return a.qm>b.qm;
}
bool cmp1(str a,str b){
	if(a.jxj==b.jxj){
		return a.name<b.name;
	}
    else {
    	return a.jxj>b.jxj;
	}
}
int main(){
	//freopen(" .in","r",stdin);
    //freopen(" .out","w",stdout);
    cin>>n;
    for(int i=0;i<n;i++){
    	cin>>a[i].name>>a[i].qm>>a[i].bj>>a[i].a>>a[i].b>>a[i].sl;
	}
	sort(a,a+n,cmp);
	for(int i=0;i<n;i++){
		if(a[i].bj>80&&a[i].a=='Y'){
			a[i].jxj+=850;
		}
		if(a[i].qm>85&&a[i].b=='Y'){
			a[i].jxj+=1000;
		}
		if(a[i].qm>90){
			a[i].jxj+=2000;
		}
		if(a[i].qm>85&&a[i].bj>80){
			a[i].jxj+=4000;
		}
		if(a[i].qm>80&&a[i].sl>=1){
			a[i].jxj+=8000;
		}
		sum+=a[i].jxj;
	}
	sort(a,a+n,cmp1);
	cout<<a[0].name<<endl;
	cout<<a[0].jxj<<endl;
	cout<<sum;
	return 0;
}```

回复

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

正在加载回复...