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\n", ansx, ansi); } return 0; }