https://www.nowcoder.com/practice/0383714a1bb749499050d2e0610418b1?tpId=40&tqId=21333&rp=1&ru=%2Fta%2Fkaoyan&qru=%2Fta%2Fkaoyan%2Fquestion-ranking&tab=answerKey
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
struct student
{
string name;
int score;
int id;
}stu[1005];
bool cmp0(student a,student b)
{
if(a.score==b.score)
return a.id<b.id;
return a.score>b.score;
}
bool cmp1(student a,student b)
{
if(a.score==b.score)
return a.id<b.id;
return a.score<b.score;
}
int main(void)
{
int n;
while(cin>>n)
{
int a; cin>>a;
for(int i=0;i<n;i++)
{
cin>>stu[i].name>>stu[i].score;
stu[i].id=i;
}
if(a) sort(stu,stu+n,cmp1);
else sort(stu,stu+n,cmp0);
for(int i=0;i<n;i++) cout<<stu[i].name<<" "<<stu[i].score<<endl;
}
return 0;
}