坐标排序
题目描述
输入 n 个不同的坐标,按 x 轴的值从小到大排序,如果 x 相同,则按照 y 排序。
输入
第 11 行是一个整数 n( n≤10000 )。
接下来有 n行,每行有 2 个整数,代表了 1 个点的坐标。
输出
输出 n 行,每行有 2 个整数,输出排序后的 n 个坐标。
样例
输入
复制
4 -1 -1 1 1 -1 1 1 -1
输出
复制
-1 -1 -1 1 1 -1 1 1
#include <bits/stdc++.h>
using namespace std;
int n;
struct pp{
int x;
int y;
};
bool cmp1(pp a,pp b){
return a.x<b.x;
}
bool cmp2(pp a,pp b){
return a.y<b.y;
}
pp a[10001];
int main(){
cin>>n;
for(int i=0;i<n;i++) cin>>a[i].x>>a[i].y;
sort(a,a+n,cmp2);
sort(a,a+n,cmp1);
for(int i=0;i<n;i++) cout<<a[i].x<<" "<<a[i].y<<endl;
return 0;
}