input
3
9
3 7 7 9 2 4 6 3 4
5
1 1 1 1 1
5
3 2 1 2 3
output
111110010
11111
11011
解析:
如果数据不小于前一个数据,则一直为美丽序列;
当碰到第一个小于末尾的数据时,1. 如果他比首数据大,则不符题意。2. 小于等于,则标记,此后碰到的所有数据都需要判断是否可以形成美丽数列。
代码:
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5;
int t,q,m,x,y,f,a[N];
int main(){
scanf("%d",&t);
while(t--){
int cnt=0;
f=0;
scanf("%d%d",&q,&x);
y=x;
printf("1");
for(int i=1;i<q;i++){
scanf("%d",&m);
if(m>=y){
if(f==0||m<=x){
printf("1");
y=m;
}
else printf("0");
}
else if(m<y){
if(f==0&&m<=x){
f=1;
printf("1");
y=m;
}
else printf("0");
}
}
puts("");
}
return 0;
}