比赛 2025.9.13 评测结果 AAAAAAAAAAAAAAAAAA
题目名称 The Best Lineup 最终得分 100
用户昵称 二乾五 运行时间 4.375 s
代码语言 C++ 内存使用 5.82 MiB
提交时间 2025-09-13 11:16:38
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define cpy(a,b) copy(begin(a),end(a),begin(b))
#define ld long double
#define dot(x) fixed<<setprecision(x)
#define foru(a,b,c) for(ll a=b;a<=c;a++)

ll t,n;
struct cow{
    ll num,id;
}a[200005];
vector<ll>b;

bool cmp(cow a,cow b){
    if(a.num!=b.num){
        return a.num>b.num;
    }else{
        return a.id<b.id;
    }
}

int main(){
    freopen("Lineup.in" ,"r",stdin );
    freopen("Lineup.out","w",stdout);
    cin>>t;
    while(t--){
        cin>>n;
        b.clear();
        foru(i,1,n){
            cin>>a[i].num;
            a[i].id=i;
        }
        sort(a+1,a+n+1,cmp);
        ll m1=0,m2=0,used=1;
        foru(i,1,n){
            if(a[i].id>m1){
                b.push_back(a[i].num);
                m2=m1;m1=a[i].id;
            }else if(a[i].id>m2&&used){
                used=0;
                b.push_back(a[i].num);
                m1=a[i].id;
            }
        }
        for(auto x:b){
            cout<<x<<" ";
        }
        cout<<"\n";
    }
    return 0;
}