这是一道白给题
#include <cstdio>
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
struct node {
string id;
string name;
int gr;
}stu[100000];
bool cmp1(node a, node b) {
return a.id < b.id;
}
bool cmp2(node a, node b) {
return a.name <= b.name;
}
bool cmp3(node a, node b) {
return a.gr != b.gr ? a.gr <= b.gr : a.id < b.id;
}
int n, c;
int main() {
cin >> n >> c;
for (int i = 0; i < n; i++) cin >> stu[i].id >> stu[i].name >> stu[i].gr;
if (c == 1) sort(stu, stu + n, cmp1);
if (c == 2) sort(stu, stu + n, cmp2);
if (c == 3) sort(stu, stu + n, cmp3);
for (int i = 0; i < n; i++) {
cout << stu[i].id << " " << stu[i].name << " " << stu[i].gr <<endl;
}
return 0;
}