一道简单的选择结构题。我们根据题目的要求和克制关系写判断条件即可。
这道题的难点是题目中给的拿几个情况的判断。好像我们必须把所有的情况都写出来一样。
但实际上不需要。
我们选择a或者b来进行处理即可。比如,我们选择a,那么我们就把a当前的所有可能列举出来,然后根据当前a的情况,写上只有b得分的情况、只有a得分的情况,二者都得分的情况即可。
这样可以减少很多判断条件的书写。
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
string s1, s2;
int a = 0, b = 0;
while(n--) {
cin >> s1 >> s2;
if(s1 == s2) {
a += 1;
b += 1;
continue;
}
if(s1 == "Jin") {
if(s2 == "Huo") {
b += 3;
} else if(s2 == "Mu") {
a += 3;
} else {
a += 1;
b += 1;
}
} else if(s1 == "Mu") {
if(s2 == "Jin") {
b += 3;
} else if(s2 == "Tu") {
a += 3;
} else {
a += 1;
b += 1;
}
} else if(s1 == "Shui") {
if(s2 == "Tu") {
b += 3;
} else if(s2 == "Huo") {
a += 3;
} else {
a += 1;
b += 1;
}
} else if(s1 == "Huo") {
if(s2 == "Shui") {
b += 3;
} else if(s2 == "Jin") {
a += 3;
} else {
a += 1;
b += 1;
}
} else {
if(s2 == "Mu") {
b += 3;
} else if(s2 == "Shui") {
a += 3;
} else {
a += 1;
b += 1;
}
}
}
if(a == b) {
cout << "Draw";
} else {
if(a > b) {
cout << "Alice";
} else {
cout << "Bob";
}
}
return 0;
}