「CF1463A」暗黑地牢
Posted 幻与空_cqbz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了「CF1463A」暗黑地牢相关的知识,希望对你有一定的参考价值。
暗黑地牢
内存限制:256 MB 时间限制:1000 ms
题目描述
现在,你正在玩一款名为暗黑地牢的电脑游戏,在这款游戏当中,你需要击败地牢中的所有怪兽来获得游戏的胜利。
进行到游戏的最后,在你的面前一共只剩下三只怪兽,第一只怪兽有点血,第二只怪兽有点血,第三只怪兽有点血。
为了击败这三只怪兽,你掏出了兜里的魔法手枪,这支手枪每次能对一只怪兽造成一点伤害,但是,当你每进行七次射击时(即第7、14、21、次射击),你可以发动手枪的魔法,对所有的怪兽造成1点伤害。当然,每只怪兽的血量最少只会减少至0。
现在,你为了让游戏结束得更加漂亮,你希望用一颗魔法子弹击倒所有的怪兽结束这个游戏(即你需要发动手枪的魔法,用一次射击让所有的怪兽血量第一次减少至0)。
现在,你需要判断,依据目前的形式,你能否漂亮的结束游戏。
接下来,你需要回答 个问题。
输入格式
第一行输入一个数字,表示需要回答的问题数量
接下来,对于每个问题,输入三个数字,分别表示三只怪兽的血量。
输出格式
对于这次游戏,如果能够漂亮的结束,输出"YES",否则,输出"NO"。
样例输入
3
3 2 4
1 1 1
10 1 7
样例输出
YES
NO
NO
思路
这道题看似很难,其实很简单
这道题看似简单,其实非常难
所以我到底说了个啥
其实这道题挺简单,首先可以从题目中得知的是每七次射击,总共会对怪兽造成6 + 3 = 9点伤害
所以,想要漂亮的结束游戏,三只怪兽的血量必须是9的倍数
其次,怪兽的血量不能少于魔法子弹的发射次数,否则怪兽的血量就会小于0 游戏BUG
代码
#include <bits/stdc++.h>
using namespace std;
long long t, a, b, c, tot, minn; // 为了防止溢出,所以将变量定义成long long型
int main() {
cin >> t;
for (int i = 0; i < t; i++) {
cin >> a >> b >> c;
tot = a + b + c; // 怪兽血量和
minn = min(min(a, b), c); // 求最少的怪兽血量
if (minn < tot / 9 or tot % 9 != 0) { // 如果不满足上述条件,则输出NO
cout << "NO" << endl;
} else {
cout << "YES" << endl;//否则输出YES
}
}
return 0;
}
配合代码了解思路即可!
尽量不要Ctrl + C!
以上是关于「CF1463A」暗黑地牢的主要内容,如果未能解决你的问题,请参考以下文章
codecombat之边远地区的森林1-11关及地牢38关代码分享