#include <algorithm> #include <cstdint> #include <cstdio> #include <iostream> #include <string> using namespace std; struct Student{ char name[50]; int grade; int seq; }; //从高到底 bool Comp1(Student a, Student b){ if (a.grade == b.grade && a.seq < b.seq) { return true; }else { return a.grade > b.grade; } }; //从底到高 bool Comp2(Student a, Student b){ if (a.grade == b.grade && a.seq < b.seq) { return true; }else { return a.grade < b.grade; } }; int main() { int n; while (scanf("%d",&n) != EOF) { int flag; Student stu[n]; scanf("%d",&flag); for (int i = 0; i < n ; ++i) { scanf("%s %d",&stu[i].name,&stu[i].grade); stu[i].seq = i; } if (0 == flag) { sort(stu, stu+n, Comp1); }else { sort(stu, stu+n, Comp2); } for (int j = 0; j < n; ++j) { printf("%s %d\n",stu[j].name,stu[j].grade); } } }