#include <iostream> #include <algorithm> #include <string> using namespace std; struct Student{ char name[100]; int grade; int seq; }arr[1000]; bool cmp0(Student a, Student b){ if(a.grade == b.grade && a.seq < b.seq) return true; else if(a.grade>b.grade) return true; else return false; } bool cmp1(Student a, Student b){ if(a.grade == b.grade && a.seq < b.seq) return true; else if(a.grade<b.grade) return true; else return false; } int main() { int n,x; int seqq = 0; while(scanf("%d\n%d",&n,&x)!=EOF){ for(int i=0;i<n;++i){ scanf("%s %d",arr[i].name, &arr[i].grade); seqq+=1; arr[i].seq = seqq; } if(x==0){ stable_sort(arr,arr+n,cmp0); } else{ stable_sort(arr,arr+n,cmp1); } for (int i=0; i<n; ++i){ printf("%s %d\n",arr[i].name,arr[i].grade); } } // for (int i=0; i<n; ++i){ // printf("%s %d\n",arr[i].name,arr[i].grade); // } } // 64 位输出请用 printf("%lld")