本蒟蒻代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,l,r;
string s,ans;
bool flag[100001];
void make(int ll,int rr){
r=n-ll;
l=n-rr;
}
void print(int n){
for(int i=1;i<=n;i++)putchar('a');
exit(0);
}
void other(){
int sum=0;
for(int i=0;i<n;i++)
if(s[i]=='a')sum++;
if(sum==n){
for(int i=1;i<=r;i++)putchar('a');
for(int i=1;i<=n-r;i++)putchar('b');
exit(0);
}
if(sum==0){
for(int i=1;i<=n-l;i++)putchar('a');
for(int i=0;i<l;i++)cout<<s[n-l+i];
exit(0);
}
}
int main(){
cin>>n>>l>>r;cin>>s;
if(l==0&&r==n)print(n);
other();
make(l,r);
ans=s;
int w=0;
for(int i=0;i<n&&w<l;i++){
if(s[i]!='a'){
ans[i]='a';
flag[i]=true;
w++;
}
}
if(w>=r){
cout<<ans;
return 0;
}
for(int i=n-1;i>=0&&w<r;i--){
if(!flag[i]){
ans[i]='b';
w++;
}
}
cout<<ans;
return 0;
}
print和other是针对两组特殊数据的,可以忽略。