教訓提莫
今天筆試網易,遇到一個有意思的題目:
蘭博和提莫每回合都攻擊對方,使用技能或者是普通攻擊,輸入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");
}