Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
136458 | 刘星辰liuxingchen | 双关键字排序 | C++ | 运行超时 | 20 | 1000 MS | 1024 KB | 691 | 2024-03-09 09:31:54 |
#include<bits/stdc++.h> using namespace std; int n; struct point { int a; int b; }; point a[100010]; void s(int l,int r) { if(l>=r) { return ; } int i=l; int j=r; int t=l; while(i!=j) { while((a[i].a<a[t].a || a[i].a==a[t].a && a[i].b<a[t].b) && i<j) { i++; } while((a[j].a>a[t].a || a[j].a==a[t].a && a[j].b>a[t].b) && i<j) { j--; } if(i<j) { swap(a[i],a[j]); } } swap(a[l],a[i]); s(l,i-1); s(i+1,r); } int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>a[i].a; cin>>a[i].b; } s(1,n); for(int i=1;i<=n;i++) { cout<<a[i].a; cout<<" "; cout<<a[i].b; cout<<endl; } return 0; }