比赛 |
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;
}