Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
168136 | B班-陈曦 | 双关键字排序 | C++ | 通过 | 100 | 34 MS | 1028 KB | 662 | 2024-08-19 22:58:07 |
#include<bits/stdc++.h> using namespace std; int a[100001],b[100001]; void QuickSort(int L,int R){ int i=L,j=R; int temp=rand()%(R-L+1)+L; int mid1=a[temp]; int mid2=b[temp]; while(i<=j){ while(a[i]<mid1||a[i]==mid1&&b[i]<mid2)i++; while(a[j]>mid1||a[j]==mid1&&b[j]>mid2)j--; if(i<=j){ swap(a[i],a[j]); swap(b[i++],b[j--]); } } if(i<R) QuickSort(i,R); if(j>L) QuickSort(L,j); } int main(){ int n; scanf("%d",&n); for(int i=0; i<n; i++) scanf("%d%d",&a[i],&b[i]); srand(time(0)); QuickSort(0,n-1); for(int i=0; i<n; i++) printf("%d %d\n",a[i],b[i]); return 0; }