PAT 1018 錘子剪刀布 20分

2021-10-05 03:59:56 字數 1671 閱讀 3626

現給出兩人的交鋒記錄,請統計雙方的勝、平、負次數,並且給出雙方分別出什麼手勢的勝算最大。

輸入格式:

輸入第 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...