Foreword:
21 Postgraduate entrance examination, I am gnawing "Algorithm Notes", whether I can enter the retest or not to record the garbage code written on the road.
answer:
#include<cstdio>
int main()
{
int pose1[3] = {
0 }, pose2[3] = {
0 }; //双方获胜3种手势次数,0布,1锤子,2剪刀
int res1[3] = {
0 }, res2[3] = {
0 }; //双方胜平负次数统计,0胜,1平,2负
int n, num1=2,num2=2;
char cur1, cur2,bp1,bp2; //当前局的手势和获胜最多手势
scanf("%d", &n);
while (n--) {
getchar();
cur1 = getchar();
getchar();
cur2 = getchar();
if (cur1 == cur2) {
res1[1]++;
res2[1]++;
}
else if (cur1 == 'C' && cur2 == 'J') {
res1[0]++;
res2[2]++;
pose1[1]++;
}
else if (cur1 == 'J' && cur2 == 'B') {
res1[0]++;
res2[2]++;
pose1[2]++;
}
else if (cur1 == 'B' && cur2 == 'C') {
res1[0]++;
res2[2]++;
pose1[0]++;
}
else if (cur2 == 'C' && cur1 == 'J') {
res2[0]++;
res1[2]++;
pose2[1]++;
}
else if (cur2 == 'J' && cur1 == 'B') {
res2[0]++;
res1[2]++;
pose2[2]++;
}
else if (cur2 == 'B' && cur1 == 'C') {
res2[0]++;
res1[2]++;
pose2[0]++;
}
}
printf("%d %d %d\n", res1[0], res1[1], res1[2]);
printf("%d %d %d\n", res2[0], res2[1], res2[2]);
for (int i = 2; i >= 1; i--)
{
if (pose1[i - 1] >= pose1[i])
num1 = i - 1;
if (pose2[i - 1] >= pose2[i])
num2 = i - 1;
}
if (num1 == 0)
bp1 = 'B';
else if (num1 == 1)
bp1 = 'C';
else
bp1 = 'J';
if (num2 == 0)
bp2 = 'B';
else if (num2 == 1)
bp2 = 'C';
else
bp2 = 'J';
printf("%c %c", bp1, bp2);
return 0;
}
Only the first three test points can be tested, and the last three cannot be found wrong.