AcWing 3375. 成绩排序
原题链接
简单
作者:
max2021
,
2022-07-08 13:33:34
,
所有人可见
,
阅读 268
C++ 代码
#include <bits/stdc++.h>
using namespace std;
const int N=1010;
struct node
{
string name;
int score;
int x;
}a[N];
int n,k;
int cmp1(node a,node b)
{
if(a.score!=b.score)return a.score<b.score;
return a.x<b.x;
}
int cmp2(node a,node b)
{
if(a.score!=b.score)return a.score>b.score;
return a.x<b.x;
}
int main()
{
cin>>n>>k;
for(int i=1;i<=n;i++)
cin>>a[i].name>>a[i].score,a[i].x=i;
if(k==1)sort(a+1,a+n+1,cmp1);
else sort(a+1,a+n+1,cmp2);
for(int i=1;i<=n;i++)
cout<<a[i].name<<" "<<a[i].score<<endl;
return 0;
}