#include<stdio.h>
using namespace std;
#include<vector>
#include<algorithm>
struct student {
int grade;
int id;
};
//改写比较规则
bool compare(student l, student r) {
//l.grade<r.grade不用交换
//l.grade=r.grade,且l.id<r.id不用交换
if (l.grade < r.grade) {
return true;
}
else if (l.grade == r.grade && l.id < r.id) {
return true;
}
else {
return false;
}
}
int main() {
int N;
while (scanf("%d", &N) != EOF) {
//student结构体类型的动态数组
vector<student> students(N);
//输入N个学生的学号和成绩
for (int i = 0; i < N; i++) {
scanf("%d %d", &students[i].id, &students[i].grade);
}
//排序
sort(students.begin(), students.end(), compare);
//打印学生学号 成绩
for (int i = 0; i < N; i++) {
printf("%d %d\n", students[i].id, students[i].grade);
}
}
return 0;
}
题目链接