Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
135364 | 江婉儿 | 双关键字排序 | C++ | 通过 | 100 | 408 MS | 1028 KB | 959 | 2024-03-05 13:34:54 |
#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) sortb(l,j); if(i<r) sortb(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; }