P9539
Description
给定一个长度为
Solution
考虑贪心。
先将该字符串非 a 字符替换成 a,优先从前往后换,若换的个数
记原字符串所有非 a 字符数为 a 字符再替换为 b(若修改非 a 字符为 b,则有效修改数不会增加),优先从后往前换。
Code
#include<bits/stdc++.h>
#define ll long long
using namespace std;
inline ll read(){
ll x=0,y=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')y=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+(ch&15),ch=getchar();
return x*y;
}
int n,l,r;
string s;
bool fuck[1000007];
int main(){
n=read();l=read();r=read();
l=n-l;r=n-r;
cin>>s;
int flag=0;
for(int i=0;i<n;i++){
if(flag==l)break;
if(s[i]!='a')s[i]='a',flag++;
else fuck[i]=1;
}
if(flag<r){
for(int i=n-1;i>=0;i--){
if(fuck[i])s[i]='b',flag++;
if(flag==r)break;
}
}
cout<<s;
return 0;
}