描述
输入某班n个同学(𝑛<100n<100)的成绩数据,语文及数学成绩,将总分成绩按降序排列,并从高到低输出,总分相同的,学号小的先输出。
输入格式
第一行包含一个整数n,(𝑛<100n<100)表示学生数目;
接下来的n行,每行2个数,分别为按学号从1号到n号输入语文、数学成绩,中间用单个空格隔开。成绩为一个不大于100100的非负数。
输出格式
𝑁N行,按总分降序排列输出每个同学的学号及总分(学号即输入的序号)
样例输入
4
80 90
90 91
92 92
59 70
样例输出
3 184
2 181
1 170
4 129
代码:
#include<bits/stdc++.h>
using namespace std;
struct node{
int id,sum;
};
node a[105];
bool cmp(node x,node y){
if(x.sum!=y.sum)return x.sum>y.sum;
return x.id<y.id;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++){
int x,y;
cin>>x>>y;
a[i]={i,x+y};
}
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
cout<<a[i].id<<" "<<a[i].sum<<endl;
}
return 0;
}