AcWing 3375. 成绩排序
原题链接
简单
作者:
小小小陈
,
2022-02-24 14:47:29
,
所有人可见
,
阅读 154
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
const int N = 1010;
int n;
struct Student {
string name;
int score;
int num;
}stu[N];
bool cmp1(Student a, Student b) {
if(a.score == b.score) return a.num < b.num;
else return a.score > b.score;
}
bool cmp2(Student a, Student b) {
if(a.score == b.score) return a.num < b.num;
else return a.score < b.score;
}
int main() {
int temp;
cin>>n>>temp;
for(int i = 0; i < n; i++) {
cin>>stu[i].name>>stu[i].score;
stu[i].num = i;
}
if(temp == 0) sort(stu, stu + n, cmp1);
else sort(stu, stu + n, cmp2);
for(int i = 0; i < n; i++) cout<<stu[i].name<<" "<<stu[i].score<<endl;
return 0;
}