社区讨论

赛时 20 pts 求调,悬2关

P14954520参与者 6已保存回复 18

讨论操作

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

当前回复
18 条
当前快照
1 份
快照标识符
@mjy5tt3d
此快照首次捕获于
2026/01/03 18:28
2 个月前
此快照最后确认于
2026/01/07 13:50
上个月
查看原帖
rt.
CPP
#include<bits/stdc++.h>
using namespace std;
#define int long long
int T;
int n,a,b,c;
string s;
signed main(){
    cin>>T;
    while(T--){
        cin>>n>>a>>b>>c>>s;
        s=" "+s;
        int ans=0;
        while(1){
            int k=s.find("520");
            if(k==-1)break;
            else s.erase(k,3),ans++;
        }
        while(a!=0){
            int k=s.find("20");
            if(k==-1)break;
            else s.erase(k,2),ans++,a--;
        }
        while(b!=0){
            int k=s.find("50");
            if(k==-1)break;
            else s.erase(k,2),ans++,b--;
        }
        while(c!=0){
            int k=s.find("52");
            if(k==-1)break;
            else s.erase(k,2),ans++,c--;
        }
        while(a!=0&&b!=0){
            int k=s.find("0");
            if(k==-1)break;
            else s.erase(k,1),ans++,a--,b--;
        }
        while(a!=0&&c!=0){
            int k=s.find("2");
            if(k==-1)break;
            else s.erase(k,1),ans++,a--,c--;
        }
        while(c!=0&&b!=0){
            int k=s.find("5");
            if(k==-1)break;
            else s.erase(k,1),ans++,c--,b--;
        }
        ans+=min({a,b,c});
        cout<<ans<<"\n";
    }
    return 0;
}

回复

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

正在加载回复...