求调
查看原帖
求调
1025958
511_Juruo_wyk楼主2023/11/10 22:17

测评结果

本蒟蒻代码:

#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是针对两组特殊数据的,可以忽略。

2023/11/10 22:17
加载中...