#include<cstdio> #include<algorithm> using namespace std ; struct Student { char name[50]; int grade; int seq;//记录录入顺序 }; bool comp0(Student lhs, Student rhs) { if (lhs.grade < rhs.grade) { return true; } else if (lhs.grade == rhs .grade && lhs.seq < rhs.seq) { return true; } else { return false; } } bool comp1(Student lhs, Student rhs) { if (lhs.grade > rhs.grade) { return true; } else if (lhs.grade == rhs .grade && lhs.seq < rhs.seq) { return true; } else { return false; } } int main() { int n ; int order; //0/1 Student arr[1000]; while (scanf("%d%d", &n, &order) != EOF) { int seq = 0; for (int i = 0 ; i < n ; ++i) { scanf("%s%d", arr[i].name, &arr[i].grade); arr[i].seq = seq; ++seq; } if (0 == order) { sort(arr, arr + n, comp1); } else if (1 == order) { sort(arr, arr + n, comp0); } for (int i = 0 ; i < n ; ++i) { printf("%s %d\n", arr[i].name, arr[i].grade); } } }