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

#define maxn 200005

int t,n;
struct node{
    int x,y;
};
node a[maxn];
int b[maxn],c[maxn][4];


bool cmp(node u,node v){
    if(u.x==v.x){
        return u.y<v.y;
    }
    return u.x>v.x;
}

int main(){
    
    
    freopen("Lineup.in","r",stdin);
    freopen("Lineup.out","w",stdout);
    
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    cin>>t;
    
    while(t--){
        cin>>n;
        a[0].x=0,a[0].y=0;
        for(int i=1;i<=n;i++){
            cin>>a[i].x;
            a[i].y=i;
        }
        sort(a+1,a+1+n,cmp);
        int k=0,u=0,v=0,p=0,q=0;
        /*for(int i=1;i<=n;i++){
            if(a[i].y>a[i-1].y&&a[i].y>a[i+1].y){
                v=a[i].x;
                k=a[i].y;
                u=a[i-1].y+1;
                a[i].y=a[i-1].y+1;
                break;
            }
        }
        if(k!=0){
            for(int i=1;i<=n;i++){
                if(a[i].y>=u&&a[i].y<k&&a[i].x!=v){
                    a[i].y++;
                }
            }
        }*/
        for(int i=1;i<=n;i++){
            if(a[i].y>a[q].y){
                p=q;
                q=i;
            }
            if(a[i].y>a[p].y&&a[i].y<a[q].y){
                a[q].y=a[p].y;
                break;
            }
            
        }
        /*for(int i=1;i<=n;i++){
            cout<<a[i].y<<" ";
        }
        cout<<"\n";*/
        p=-114,q=0;
        for(int i=1;i<=n;i++){
            if(a[i].y>=q){
                if(p!=-114){
                    cout<<p<<" ";
                }
                p=a[i].x;
                q=a[i].y;
            }
        }
        cout<<p<<"\n";
    }
    
    
    return 0;
}