成绩统计 WA20

题面:

4. 成绩统计

题目ID:9600100分

最新提交:

Wrong Answer

20 分

历史最高:

Wrong Answer

20 分

时间限制: 1000ms

空间限制: 524288kB

题目描述

输入N个学生的姓名和语文、数学的得分,按总分从高到低输出,分数相同的按输入先后输出。

输入格式

第1行,有一个整数N,N的范围是[1…100];下面有N行,每行一个姓名,2个整数。姓名由不超过10个的小写字母组成,整数范围是[0…100]。

输出格式

总分排序后的名单,共N行,每行格式:姓名 语文 数学 总分。

样例

Input 1

4 gaoxiang 78 96 wangxi 70 99 liujia 90 87 zhangjin 78 91

Output 1

liujia 90 87 177 gaoxiang 78 96 174 wangxi 70 99 169 zhangjin 78 91 169

样例解释

按照总分降序排序,总分相同的按照输入顺序排序,所以输出为liujia 90 87 177、gaoxiang 78 96 174、wangxi 70 99 169、zhangjin 78 91 169

数据范围

N的范围是[1…100],姓名由不超过10个的小写字母组成,整数范围是[0…100]
代码

#include<bits/stdc++.h>
#define LL long long
using namespace std;
struct note{
    string s;
	LL c;
	LL m;
    LL sum;
}a[100005];
bool cmp(note a,note b){
    return a.sum>b.sum;
}
int main(){
	LL n;
	cin>>n;
	for(LL i=1;i<=n;i++){
		cin>>a[i].s>>a[i].c>>a[i].m;
        a[i].sum=a[i].c+a[i].m;
	}
	sort(a+1,a+1+n,cmp);
	for(LL i=1;i<=n;i++){
		cout<<a[i].s<<" "<<a[i].c<<" "<<a[i].m<<" "<<a[i].sum<<"\n";
	}
	return 0;
}

快救救我!!!
做出来的奖励一解决方案

所以要定义一个a[i].id=i排序

做出来了,直接用stable_sort