現給出兩人的交鋒記錄,請統計雙方的勝、平、負次數,並且給出雙方分別出什麼手勢的勝算最大。
輸入格式:
輸入第 1 行給出正整數 n(≤10^5 ),即雙方交鋒的次數。隨後 n 行,每行給出一次交鋒的資訊,即甲、乙雙方同時給出的的手勢。c 代表「錘子」、j 代表「剪刀」、b 代表「布」,第 1 個字母代表甲方,第 2 個代表乙方,中間有 1 個空格。
輸出格式:
輸出第 1、2 行分別給出甲、乙的勝、平、負次數,數字間以 1 個空格分隔。第 3 行給出兩個字母,分別代表甲、乙獲勝次數最多的手勢,中間有 1 個空格。如果解不唯一,則輸出按字母序最小的解。
輸入樣例:
10
c jj b
c bb b
b cc c
c bj b
b cj j
輸出樣例:
532
235b b
#include
using
namespace std;
intmain()
,b[3]=
;/* a[0] 甲錘贏
a[1] 甲剪刀贏
a[2] 甲布贏 */
int draw =0;
while
(n--
)int sum=
0,sum2=0;
sum=a[0]
+a[1
]+a[2]
; sum2=b[0]
+b[1
]+b[2]
;printf
("%d %d %d\n"
,sum,draw,sum2)
;printf
("%d %d %d\n"
,sum2,draw,sum)
;int max1=
max(
max(a[0]
,a[1])
,a[2])
;int max2=
max(
max(b[0]
,b[1])
,b[2])
;if(max1==a[2]
) cout<<
"b "
;//按字母序輸出
else
if(max1==a[0]
) cout<<
"c "
;else
if(max1==a[1]
) cout<<
"j ";if
(max2==b[2]
) cout<<
"b";
else
if(max2==b[0]
) cout<<
"c";
else
if(max2==b[1]
) cout<<
"j";
return0;
}
水題,小tips:比大小可以用c++自帶的max函式pat乙級題解大全 c++ PAT1018 錘子剪刀布 20 分
因為9月份有事情棄考了今年9月份的pat 但是又報名了今年12月份的pat,用了一張100塊的優惠卷 想要優惠卷的小夥伴可以私我 這次因為是有充足的時間,所以我會把刷題筆記用部落格記錄下來,每一道題都至少有兩種解法甚至四五種解法 先回顧一下前兩天刷的題吧 pat1001 害死人不償命的 3n 1 猜...
PAT 1018 錘子剪刀布 20分
大家應該都會玩 錘子剪刀布 的遊戲 兩人同時給出手勢,勝負規則如圖所示 現給出兩人的交鋒記錄,請統計雙方的勝 平 負次數,並且給出雙方分別出什麼手勢的勝算最大。輸入第 1 行給出正整數 n 105 即雙方交鋒的次數。隨後 n 行,每行給出一次交鋒的資訊,即甲 乙雙方同時給出的的手勢。c 代表 錘子 ...
PAT1018錘子剪刀布 20
大家應該都會玩 錘子剪刀布 的遊戲 兩人同時給出手勢,勝負規則如圖所示 現給出兩人的交鋒記錄,請統計雙方的勝 平 負次數,並且給出雙方分別出什麼手勢的勝算最大。輸入格式 輸入第1行給出正整數n 105 即雙方交鋒的次數。隨後n行,每行給出一次交鋒的資訊,即甲 乙雙方同時給出的的手勢。c代表 錘子 j...