社区讨论

各位大佬,求调

P14954520参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mk6qrz2a
此快照首次捕获于
2026/01/09 18:37
上个月
此快照最后确认于
2026/01/11 17:50
上个月
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
#define kuaitou ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define baoliu(n) fixed<<setprecision(n)
#define FN(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout);
int f1(int a,int b,int c,string s){
    int sum=0;
    for(int i=0;i<s.size();i++){
        if(s[i]=='5'){
            sum++;
        }
    }
    return min({b,c,sum+a});
}
int f2(int a,int b,int c,string s){
    int sum=0;
    for(int i=0;i<s.size();i++){
        if(s[i]=='2'){
            sum++;
        }
    }
    return min({a,c,sum+b});
}
int f3(int a,int b,int c,string s){
    int sum=0;
    for(int i=0;i<s.size();i++){
        if(s[i]=='0'){
            sum++;
        }
    }
    return min({a,b,sum+c});
}
int f(int a,int b,int c,string s){
    int ans=0;
    for(int i=0;i<s.size()-2;i++){
        if(s[i]=='5'&&s[i+1]=='2'&&s[i+2]=='0'){//已有的
            ans++;
            s[i]='9';
            s[i+1]='9';
            s[i+1]='9';
            i+=2;
        }
    }
    for(int i=0;i<s.size()-1;i++){//差一个的
        if(s[i]=='2'&&s[i+1]=='0'){
            ans++;
            a--;
            s[i]='9';
            s[i+1]='9';
            i++;
        }else if(s[i]=='5'&&s[i+1]=='0'){
            ans++;
            b--;
            s[i]='9';
            s[i+1]='9';
            i++;
        }else if(s[i]=='5'&&s[i+1]=='2'){
            ans++;
            c--;
            s[i]='9';
            s[i+1]='9';
            i++;
        }
    }
    int A=0,B=0,C=0;
    for(int i=0;i<s.size();i++){
        if(s[i]=='5'){
            A++;
        }else if(s[i]=='2'){
            B++;
        }else{
            C++;
        }
    }
    ans+=max({min({A+a,b,c}),min({a,B+b,c}),min({a,b,C+c})});//剩下的
    return ans;
}
int main(){
    kuaitou;
    int t;
    cin>>t;
    for(int i=1;i<=t;i++){
        int n,a,b,c;
        string s;
        cin>>n>>a>>b>>s;
        cout<<f(a,b,c,s)<<endl;
    }
    return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...