提交时间:2024-03-05 13:28:10
运行 ID: 135361
#include<bits/stdc++.h> using namespace std; int n,x,y; struct shu { int a; int b; }shu[100005]; void sorta(int l,int r) { int i=l,j=r,mid=shu[(l+r)/2].a; do { while(shu[i].a<mid) i++; while(shu[j].a>mid) j--; if(i<=j) { swap(shu[i],shu[j]); i++; j--; } }while(i<=j); if(l<j) sorta(l,j); if(i<r) sorta(i,r); return; } void sortb(int l,int r) { int i=l,j=r,mid=shu[(l+r)/2].b; do { while(shu[i].b<mid) i++; while(shu[j].b>mid) j--; if(i<=j) { swap(shu[i],shu[j]); i++; j--; } }while(i<=j); if(l<j) sorta(l,j); if(i<r) sorta(i,r); x=y; return; } int main() { cin>>n; for(int i=1;i<=n;i++) cin>>shu[i].a>>shu[i].b; sorta(1,n); x=y=1; while(1) { y++; if(y>n) { sortb(x,y-1); break; } if(shu[x].a!=shu[y].a) sortb(x,y-1); } for(int i=1;i<=n;i++) cout<<shu[i].a<<" "<<shu[i].b<<endl; return 0; }