文章

64

粉丝

100

获赞

4

访问

36.0k

头像
成绩再次排序 题解:
P1817 华南理工大学机试题
发布于2024年3月20日 15:46
阅读数 440

1817题目解析

#include <bits/stdc++.h>
using namespace std;
struct Student{
	string name;
	int y;
	int m;
	int yu;
	int sum;
}stu[1005];
bool cmp(Student a,Student b)
{
	if(a.sum!=b.sum) return a.sum>b.sum;
	else if(a.y!=b.y) return a.y>b.y;
	else if(a.m!=b.m) return a.m>b.m;
	else return a.yu>b.yu;
}
int main()
{
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		cin>>stu[i].name;
		scanf("%d %d %d",&stu[i].y,&stu[i].m,&stu[i].yu) ;	
	}
	for(int i=0;i<n;i++)
	{
		stu[i].sum=stu[i].y+stu[i].m+stu[i].yu;	
	}
	stable_sort(stu,stu+n,cmp);
	for(int i=0;i<n;i++)
	{
		cout<<stu[i].name<<" "<<stu[i].y<<" "<<stu[i].m<<" "<<stu[i].yu<<endl; 
	}
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发