求hack
查看原帖
求hack
541069
SuperCowHorse楼主2022/8/8 08:28

RT。WA on #16。

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+5;
int T,x,y,z,ans,n,a,j,e,len,ma,i,ci,s1,f[N],d[N];
char s[N];
signed main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>T;
	while(T--){
		s1=0;
		cin>>n>>a>>e>>s+1;len=n*2;
		for(i=1;i<=len;i++){
			if(s[i]=='A')s1++;
			f[i]=0;d[i]=0;
		}
		if((a+e+s1)&1){
			cout<<"-1\n";continue;
		}
		ma=a;
		for(i=1;i<=len;i++)
			if(ma&&s[i]=='A')f[i]=1,ma--;
		if(ma){
			for(i=1;i<=len;i++)
				if(ma&&s[i]=='B')f[i]=1,ma--;
		}
		ma=max(abs(s1-a),abs(n-a-n+s1));
		if((e-ma)&1)cout<<"-1\n";
		else{
			ci=(e-ma)/2;
			for(i=1;i<=len;i++){
				if(ci&&!d[i]){
					for(j=i+1;j<=len;j++)
						if(f[i]!=f[j]&&!d[j])break;
					if(j<=len){
						swap(f[i],f[j]);d[i]=1;d[j]=1;
					}
					else break;
					ci--;
				}
			}
			if(ci||i<=len)cout<<"-1\n";
			else{
				for(i=1;i<=len;i++)
					if(f[i])cout<<"A";
					else cout<<"B";
				cout<<'\n';
			}
		}
	}
	return 0;
}
2022/8/8 08:28
加载中...