问题标题: 酷町堂:2722 WAWAWA...

0
0
已解决
汪宇航
汪宇航
新手启示者
新手启示者

放寒假了,小五一个人在家很无聊。于是他就想出一个新的石头剪刀布的玩法(单机版的哦)。玩法如下:S代表石头,J代表剪刀,B代表布。赢得一分,平不得分,输扣一分。进行n次游戏,而且对手每次游戏出什么都是已知的。但是自己只能出a次S,b次J和c次B(a,b,c都是非负,并且a+b+c=n)。现在需要你如何安排这a次S,b次J和c次B使自己最后得到的分数最大。

输入描述 Input Description

总共有三行:
第一行先给出n(n<=100),表示进行几次游戏,第二行接着是给n个由S,J,B组成的字符串,表示对手每次游戏出的是什么,第三行最后给出a,b,c。

输出描述 Output Description

输出只有一个整数,表示此次游戏小五赢得的最大分数

样例输入 Sample Input

2 JJ 2 0 0

样例输出 Sample Output

2

汪宇航在2021-05-02 13:58:25追加了内容

DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD


0
已采纳
张帆
张帆
中级天翼
中级天翼

现遍历字符串s,

if(s[i]=='S') s1++;
        else if(s[i]=='J') j1++;
        else b1++;

然后就是一大堆运算

cnt1=min(s2,j1);
    cnt2=min(j2,b1);
    cnt3=min(b2,s1);
    win=cnt1+cnt2+cnt3;
    s2-=cnt1,j1-=cnt1;
    j2-=cnt2,b1-=cnt2;
    b2-=cnt3,s1-=cnt3;
    cnt1=min(s1,s2);
    cnt2=min(j1,j2);
    cnt3=min(b1,b2);
    s2-=cnt1;
    j2-=cnt2;
    b2-=cnt3;
    fail=s2+j2+b2;
    cout<<win-fail;

 

0
王子耀
王子耀
缔造者
缔造者

这不是我昨天的每日一题吗?!

王子耀在2021-05-01 12:18:41追加了内容

可是我没做出来。。。。

0
0
汪宇航
汪宇航
新手启示者
新手启示者

dingdingdigdingdidhwiew9djw9djwi*ding

我要回答