WA#12求调
查看原帖
WA#12求调
559641
cgy2022楼主2024/3/3 16:48
#include<bits/stdc++.h>
using namespace std;
const int inf=100000000;
int n,s1i,s2i,chui,ai=1;
int s1[1010],s2[1010],a[1010];
char ans[2010];
bool check(int n,int ai,int s2i){
	if(!s2i) return true;
	int i;
	for(i=ai+1;i<=n;i++)
		if(a[i]>s2[s2i]&&a[i]>a[ai]) break;
	for(int j=i+1;j<=n;j++)
		if(a[ai]>a[j]&&s2[s2i]>a[j]) return false;
	return true;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	a[n+1]=s1[s1i]=s2[s2i]=inf;
	bool flag=true;
	for(int i=1;i<=n*2;i++){
		if(a[ai]<s1[s1i]&&check(n,ai,s2i)){
			s1[++s1i]=a[ai];
			ai++;
			ans[i]='a';
		}
		else if(s1[s1i]==chui+1){
			chui=chui+1;
			s1i--;
			ans[i]='b';
		}
		else if(s2[s2i]==chui+1){
			chui++;
			s2i--;
			ans[i]='d';
		}
		else if(a[ai]<s2[s2i]){
			s2[++s2i]=a[ai];
			ai++;
			ans[i]='c';
		}
		else{
			flag=false;
			break;
		}
	}
	if(flag){
		for(int i=1;i<=n*2;i++) printf("%c ",ans[i]);
		cout<<endl;
	}
	else cout<<0<<endl;
	return 0;
}
2024/3/3 16:48
加载中...