#define _CRT_SECURE_NO_WARNINGS 1 #include <bits/stdc++.h> using namespace std; struct student { string name; int score; int order; }; bool compare_1(student x, student y) { //1从低到高 if (x.score == y.score)return x.order < y.order; else return x.score < y.score; } bool compare_2(student x, student y) { //0从高到低 if (x.score == y.score)return x.order < y.order; else return x.score > y.score; } int main() { int type = 0, n = 0; while (scanf("%d%d", &n, &type) != EOF) { student arr[n];//数据范围未知 for (int i = 0; i < n; i++) { cin >> arr[i].name >> arr[i].score; arr[i].order = i; } if (type == 0) { sort(arr, arr + n, compare_2); } else { sort(arr, arr + n, compare_1); } for (int j = 0; j < n; j++) { cout << arr[j].name << " " << arr[j].score << endl; } } return 0; }