90PTS求调
查看原帖
90PTS求调
626973
LiuyiJushi楼主2024/8/25 22:30
#include <bits/stdc++.h>

using namespace std;

const int N=1e5+5;
int n,a,e,ansA;
string s;
signed main(){
	int test;
	scanf("%d",&test);
	while(test--){
		scanf("%d %d %d",&n,&a,&e);
		cin>>s;
		ansA=0;
		for(int i=0;i<n+n;i++){
			if(s[i]=='A') ansA++;
		}
		int dx=ansA+a-e;
		if(dx&1 || (dx<0 || dx>2*min(ansA,a))){
			putchar('-');
			putchar('1');
		}else{
			int x=dx/2,rx=a-x;
			for(int i=0;i<n+n;i++){
				if(s[i]=='A'){
					if(x){
						x--;
						putchar('A');
					}else{
						putchar('B');
					}
				}else{
					if(rx){
						rx--;
						putchar('A');
					}else{
						putchar('B');
					}
				}
			}
		}
		putchar('\n');
	}
	return 0;
} 

wa在第十一个点。 思路应该是比较清晰的,各位大佬想必可以看懂

2024/8/25 22:30
加载中...