//描述:用一维数组存储学号和成绩,然后,按成绩排序输出。
//输入描述:输入第一行包括一个整数N(1<=N<=100),代表学生的个数。 接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩。
//输出描述:按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。 如果学生的成绩相同,则按照学号的大小进行从小到大排序。
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
struct student{
int sno;
int score;
};
bool compare(student stu1,student stu2) {
if(stu1.score<stu2.score){
return true;
}else if(stu1.score==stu2.score&&stu1.sno<stu2.sno){
return true;
}else{
return false;
}
}
int main(){
int n;
scanf("%d",&n);
vector<student>vec(n);
for(int i=0;i<n;i++){
scanf("%d %d",&vec[i].sno,&vec[i].score);
}
sort(vec.begin(),vec.end(),compare);
for(int i=0;i<n;i++){
printf("%d %d\n",vec[i].sno,vec[i].score);
}
return 0;
}