文章

4

粉丝

0

获赞

0

访问

228

头像
成绩再次排序 题解:
P1817 华南理工大学机试题
发布于2026年3月23日 11:06
阅读数 52

#include<bits/stdc++.h>
using namespace std;
struct student{
	string name;
	int chinese;
	int math;
	int english;
};
bool cmp(student a,student b)
{
	if(a.chinese+a.math+a.english==b.chinese+b.english+b.math)
	{
		if(a.chinese==b.chinese)
		{
			if(a.math==b.math)
			{
				return a.english>b.english;
			}
			else
			return a.math>b.math;
		}
		else
		return a.chinese>b.chinese;
	}
	else
	return a.chinese+a.math+a.english>b.chinese+b.english+b.math;
}
int main() {
	  int n;
	  cin>>n;
	  student s[n];
	  for(int i=0;i<n;i++)
	  {
	  	cin>>s[i].name>>s[i].chinese>>s[i].math>>s[i].english;
	  }
	  stable_sort(s,s+n,cmp);
	  for(int i=0;i<n;i++)
	  {
	  	cout<<s[i].name<<" "<<s[i].chinese<<" "<<s[i].math<<" "<<s[i].english<<endl;
	  }
 }

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发