教训提莫
今天笔试网易,遇到一个有意思的题目:
兰博和提莫每回合都攻击对方,使用技能或者是普通攻击,输入A是普通攻击,B是技能。兰博的技能是毒,提莫的技能是盾。
下面就是代码了。
#include <iostream>
using namespace std;
int main() {
int HP1, HP2, A1, A2, t;
char JN_A, JN_B;
cin >> HP1 >> HP2 >> A1 >> A2 >> t;
bool poision = false;
for (; t > 0; --t) {
cin >> JN_A >> JN_B;
if (JN_A == 'A') {
if (JN_B != 'B') {
HP2 -= A1;
if (!poision) //未中毒,攻击有效
HP1 -= A2;
}
poision = false; //毒解开
HP1 = HP1 < 0 ? 0 : HP1;
HP2 = HP2 < 0 ? 0 : HP2;
if (HP2 == 0) {
cout << "YES";
return 0;
}
if (HP1 == 0) {
cout << "NO";
return 0;
}
} else {
if (JN_B == 'A')
poision = true; //中毒
else
poision = false; //毒解开
}
}
cout << (HP1 >= HP2 ? "YES" : "NO");
}