样例过了,爆零
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
pair<int,int> *p=new pair<int,int>[100001];
bool cmp(pair<int,int> a, pair<int,int> b){
if(a.first==b.first) return a.second>b.second;
return a.first>b.first;
}
int main(){
ios::sync_with_stdio(false);
cin.tie();
cout.tie();
int n;
cin>>n;
int flag=n-(n/2*2);
for(int i = 1; i<=n/2; i++){
cin>>p[i].first>>p[i].second;
}
if(flag){
cin>>p[n/2+1].first;
p[n/2+1].second=-1;
}
sort(p+1,(flag?(p+(n/2+1)):p+n/2)+1,cmp);
for(int i = 1; i<=n/2; i++){
if(p[i].second==-1){
cout<<p[i].first<<" ";
continue;
}
cout<<p[i].first<<" "<<p[i].second<<" ";
}
if(flag){
if(p[n/2+1].second==-1){
cout<<p[n/2+1].first;
}
else{
cout<<p[n/2+1].first<<" "<<p[n/2+1].second;
}
}
delete [] p;
return 0;
}