CF1463-A. Dungeon

题意:

你面前有三个怪物,他们分别有a, b, c点血量。现在你可以指定一个怪物,用大炮向他们射击,之后该怪物就会掉一滴血。每七次射击就会使得炮弹威力加强一次,即第7, 14, 21次射击的时候炮弹威力会被加强,加强的炮弹可以对三个怪物分别造成一点伤害。现在问你可不可能在某次被加强的炮弹发射后,使得所有的怪物血量变成0。

思路:

首先每七次射击,总共会造成9点伤害(6 + 3),因此如果要让所有怪物在某次被加强的炮弹发射后血量变为0,则需要他们的血量和为9的倍数。其次每个怪物的血量不能少于被加强的炮弹的发射个数,因为每次被加强的炮弹发射后所有的怪物血量都会减一,而血量不会不会为负数。

AC代码:

#include <cstdio>
#include <algorithm>

const int inf = 0x3f3f3f3f;

int main () {
    int T, a[3];
    scanf ("%d", &T);
    while (T--) {
        int tot = 0, minn = inf;
        for (int i = 0; i < 3; i++) {
            scanf ("%d", &a[i]);
            tot += a[i];
            minn = std::min (minn, a[i]);
        }
        if (minn < tot / 9 || tot % 9 != 0) {
            printf ("NO\n");
        } else {
            printf ("YES\n");
        }
    }
    return 0;
}
posted @ 2020-12-21 16:30  牟翔宇  阅读(140)  评论(0编辑  收藏  举报