求查错
查看原帖
求查错
547446
Nevergonna_CCF楼主2022/3/18 09:49

样例过了,爆零

#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;
}

2022/3/18 09:49
加载中...