2020 camp-day6-C

模拟题

在游戏规则的基础上,杀敌最多就让 毒  杀嘲讽怪或普通怪,普通随从去破圣盾

          杀敌少 毒 去破嘲讽的圣盾,或普通怪的圣盾,小兵去a普通怪(没伤害,尽量不去破圣盾)

#include<cstdio>

#define RE register
#define FOR(i,a,b) for(RE int i=a;i<=b;++i)
#define ROF(i,a,b) for(RE int i=a;i>=b;--i)
#define sc(n) scanf("%d",&n)

using namespace std;

const int maxn = 1005;

int n, e, b, c, d, ansx, ansi, T;
int ee, bb, cc, dd;
char s[maxn];

int main()
{
    sc(T);
    while (T--)
    {
        sc(n), sc(e), sc(b), sc(c), sc(d);
        ansx = ansi = 0; bb = b, cc = c, dd = d, ee = e;
        scanf("%s", s + 1);
        FOR(i, 1, n)
        {
            if (s[i] == '1')
            {
                if (c)--c, ++ansx;
                else if (d) --d, ++c;
                else if (e) --e, ++ansx;
                else if (b) --b, ++e;

                if (dd)--dd, ++cc;
                else if (cc)--cc, ++ansi;
                else if (bb) --bb, ++ee;
                else if (ee) --ee, ++ansi;
            }
            else
            {
                if (d) --d, ++c;
                else if (c);
                else if (b) --b, ++e;

                if (cc);
                else if (dd)--dd, ++cc;
            }
        }
        printf("%d %d
", ansx, ansi);
    }
    return 0;
}

  

原文地址:https://www.cnblogs.com/2aptx4869/p/12216667.html