水题,直接逆序输出就完事了,都不用排序。
#include<iostream>
#include<string>
using namespace std;
struct Node {
string name, id;
};
Node person[101];
int main() {
int N, grade, g1, g2, count = 0;
string name, id;
scanf("%d", &N);
for (int i = 0; i < N; i++) {
cin >> name >> id >> grade;
person[grade] = { name,id };
}
scanf("%d%d", &g1, &g2);
for (int i = g2; i >= g1; i--) {
if (person[i].id.size()!=0) {
printf("%s %s\n", person[i].name.c_str(), person[i].id.c_str());
count++;
}
}
if (count == 0)printf("NONE");
return 0;
}