思路
- jiawin、yiwin分别表示甲乙赢的次数
- s和t分别表示每一次甲乙给出的手势
- jia、yi记录获胜手势的次数
- maxjia和maxyi分别表示甲乙获胜次数最多的手势所对应的下标(012分别表示BCJ)
- 枚举每一次甲乙手势的胜负结果,累加到jiawin和yiwin中,输出结果
#include <iostream> using namespace std; int main() { int n; cin >> n; int jiawin = 0, yiwin = 0; int jia[3] = {0}, yi[3] = {0}; for (int i = 0; i < n; i++) { char s, t; cin >> s >> t; if (s == 'B' && t == 'C') { jiawin++; jia[0]++; } else if (s == 'B' && t == 'J') { yiwin++; yi[2]++; } else if (s == 'C' && t == 'B') { yiwin++; yi[0]++; } else if (s == 'C' && t == 'J') { jiawin++; jia[1]++; } else if (s == 'J' && t == 'B') { jiawin++; jia[2]++; } else if (s == 'J' && t == 'C') { yiwin++; yi[1]++; } } cout << jiawin << " " << n - jiawin - yiwin << " " << yiwin << endl << yiwin << " " << n - jiawin - yiwin << " " << jiawin << endl; int maxjia = jia[0] >= jia[1] ? 0 : 1; maxjia = jia[maxjia] >= jia[2] ? maxjia : 2; int maxyi = yi[0] >= yi[1] ? 0 : 1; maxyi = yi[maxyi] >= yi[2] ? maxyi : 2; char str[4] = {"BCJ"}; cout << str[maxjia] << " " << str[maxyi]; return 0; }
参考
https://www.liuchuo.net/archives/539