56分2~4,10~12wa,蒟蒻求助
查看原帖
56分2~4,10~12wa,蒟蒻求助
683304
lethe_u楼主2022/8/19 16:07
#include<bits/stdc++.h>
using namespace std;
int m;
char b[200010];
int main(){
	cin>>m;
	while(m--){
		int n,a,e;
		int cnt=0;
		cin>>n>>a>>e;
		n*=2;
		for(int i=1;i<=n;i++){
			cin>>b[i];
			if(b[i]=='A')cnt++;
		}
		int ans=abs(cnt-a);
		if(e%2==1)if(ans%2==0){cout<<-1<<endl;continue;}
		if(e%2==0)if(ans%2==1){cout<<-1<<endl;continue;}
		if(ans>e){cout<<-1<<endl;continue;}
		int ans2=e-ans;
		ans=cnt-a;
		for(int i=1;i<=n;i++){
			if(ans>0&&b[i]=='A'){
				b[i]='B';ans--;
			}
			else {
				if(ans<0&&b[i]=='B'){
					b[i]='A';ans++;
				}
				else{if(b[i]!=b[i+1]&&ans==0&&i+1<=n){
					swap(b[i],b[i+1]);
					ans2-=2;
					i+=2;
					}
				}
			}
			if(ans==0&&ans2==0)break;
		}
		if(ans!=0||ans2!=0)cout<<-1<<endl;
		{
			for(int i=1;i<=n;i++){
				cout<<b[i];
			}
			cout<<endl;
		}
	}
}
2022/8/19 16:07
加载中...