輸入格式:
輸入第 1 行給出正整數 n(≤10^5
),即雙方交鋒的次數。隨後 n 行,每行給出一次交鋒的資訊,即甲、乙雙方同時給出的的手勢。c 代表「錘子」、j 代表「剪刀」、b 代表「布」,第 1 個字母代表甲方,第 2 個代表乙方,中間有 1 個空格。
輸出格式:
輸出第 1、2 行分別給出甲、乙的勝、平、負次數,數字間以 1 個空格分隔。第 3 行給出兩個字母,分別代表甲、乙獲勝次數最多的手勢,中間有 1 個空格。如果解不唯一,則輸出按字母序最小的解。
輸入樣例
10c j
j bc b
b bb c
c cc b
j bb c
j j輸出樣例
5 3 2
2 3 5
b b
#include
intchange
(char c)
s1勝s2:(s1+1)%3 == s2; //這裡不能直接比較s1notice
scanf使用%c會讀入\n換行符,導致程式輸入資料後閃退
因此:使用 getchar(); 吸收空格
#include
intchange
(char c)
intmain()
;int n;
int v_a[3]
=,v_b[3]
=;//勝平負次數 0勝 1平 2負
int hand_a[3]
=,hand_b[3]
=;//三種手勢獲勝次數 0b 1c 2j
char c1,c2;
int s1,s2;
scanf
("%d"
,&n)
;for
(int i=
0;i)else
if(s1==s2)
//乙贏
else
}printf
("%d %d %d\n"
,v_a[0]
,v_a[1]
,v_a[2]
);printf
("%d %d %d\n"
,v_b[0]
,v_b[1]
,v_b[2]
);//找出勝出最多的手勢
int a=
0,b=0;
for(
int i=
0;i<
3;i++
)printf
("%c %c\n"
,mp[a]
,mp[b]);
//最後返回字母
return0;
}
PAT B 1018 錘子剪刀布
大家應該都會玩 錘子剪刀布 的遊戲 兩人同時給出手勢,勝負規則如圖所示 現給出兩人的交鋒記錄,請統計雙方的勝 平 負次數,並且給出雙方分別出什麼手勢的勝算最大。輸入格式 輸入第1行給出正整數n 105 即雙方交鋒的次數。隨後n行,每行給出一次交鋒的資訊,即甲 乙雙方同時給出的的手勢。c代表 錘子 j...
PAT B1018 錘子剪刀布
1018 錘子剪刀布 20 分 現給出兩人的交鋒記錄,請統計雙方的勝 平 負次數,並且給出雙方分別出什麼手勢的勝算最大。輸入第 1 行給出正整數 n 10 5 即雙方交鋒的次數。隨後 n 行,每行給出一次交鋒的資訊,即甲 乙雙方同時給出的的手勢。c代表 錘子 j代表 剪刀 b代表 布 第 1 個字母...
PAT B1018 錘子剪刀布
現給出兩人的交鋒記錄,請統計雙方的勝 平 負次數,並且給出雙方分別出什麼手勢的勝算最大。輸入第 1 行給出正整數 n 10 5 即雙方交鋒的次數。隨後 n 行,每行給出一次交鋒的資訊,即甲 乙雙方同時給出的的手勢。c代表 錘子 j代表 剪刀 b代表 布 第 1 個字母代表甲方,第 2 個代表乙方,中...