60分求助
查看原帖
60分求助
458493
__BAI__楼主2022/8/7 20:13
#include<bits/stdc++.h>
using namespace std;
int main(){
	int t;
	cin>>t;
	while(t--){
		queue<int> A;
		queue<int> B;
		int n,a,e;
		int ans=0;
		cin>>n>>a>>e;
		char s[2*n+5];
		char s1[2*n+5];
		memset(s,0,sizeof(s));
		memset(s1,0,sizeof(s1));
		cin>>s;
		for(int i=0;i<2*n;i++){
			if(s[i]=='A')
				ans++;
		}
		int c=a-ans;
		for(int i=0;i<2*n;i++){
			if(c>0){
				if(s[i]=='B')
					s1[i]='A',c--;
				else
					s1[i]='A';
			}else if(c<0){
				if(s[i]=='A')
					s1[i]='B',c++;
				else
					s1[i]='B';
			}else
				s1[i]=s[i];
		}
		ans=0;
		for(int i=0;i<2*n;i++){
			if(s1[i]==s[i]){
				if(s[i]=='A'){
					A.push(i);
				}else
					B.push(i);
			}else
				ans++;
		}
		e-=ans;
		if(e<0||e%2==1||e>min(A.size(),B.size()))
			puts("-1");
		else{
			while(e){
				s1[A.front()]='B';
				s1[B.front()]='A';
				A.pop();
				B.pop();
				e-=2;
			}
			puts(s1);
		}
	}
} 

记录详情

2022/8/7 20:13
加载中...