1018 錘子剪刀布(20 分)
大家應該都會玩“錘子剪刀布”的遊戲:兩人同時給出手勢,勝負規則如圖所示:
現給出兩人的交鋒記錄,請統計雙方的勝、平、負次數,並且給出雙方分別出什麼手勢的勝算最大。
輸入格式:
輸入第 1 行給出正整數 N(≤105),即雙方交鋒的次數。隨後 N 行,每行給出一次交鋒的信息,即甲、乙雙方同時給出的的手勢。C
代表“錘子”、J
代表“剪刀”、B
代表“布”,第 1 個字母代表甲方,第 2 個代表乙方,中間有 1 個空格。
輸出格式:
輸出第 1、2 行分別給出甲、乙的勝、平、負次數,數字間以 1 個空格分隔。第 3 行給出兩個字母,分別代表甲、乙獲勝次數最多的手勢,中間有 1 個空格。如果解不唯一,則輸出按字母序最小的解。
輸入樣例:
10
C J
J B
C B
B B
B C
C C
C B
J B
B C
J J
輸出樣例:
5 3 2
2 3 5
B B
用C語言寫
#include<stdio.h>
int main(){
int n,c=0,c1=0,j=0,j1=0,b=0,b1=0,p=0;
char letter1,letter2;
scanf("%d",&n);
getchar();
for(int i = 0;i<n;i++){
scanf("%c %c",&letter1,&letter2);
getchar();
if(letter1=='B'&&letter2=='C')
b++;
else if(letter1=='C'&&letter2=='J')
c++;
else if(letter1=='J'&&letter2=='B')
j++;
else if(letter1==letter2)
p++;
else if(letter2=='C'&&letter1=='J')
c1++;
else if(letter2=='J'&&letter1=='B')
j1++;
else if(letter2=='B'&&letter1=='C')
b1++;
}
printf("%d %d %d\n",c+j+b,p,c1+j1+b1);
printf("%d %d %d\n",c1+j1+b1,p,c+j+b);
if(b>=j&&b>=c) printf("B ");
else if(c>=j&&c>=b) printf("C ");
else if(j>=c&&j>=b) printf("J ");
if(b1>=j1&&b1>=c1) printf("B");
else if(c1>=j1&&c1>=b1) printf("C");
else if(j1>=c1&&j1>=b1) printf("J");
}