PAT乙1018. 錘子剪刀布 (20)
阿新 • • 發佈:2019-01-12
題目在這裡
1018. 錘子剪刀布 (20)
時間限制 100 ms記憶體限制 65536 kB
程式碼長度限制 8000 B
判題程式 Standard 作者 CHEN, Yue
大家應該都會玩“錘子剪刀布”的遊戲:兩人同時給出手勢,勝負規則如圖所示:
現給出兩人的交鋒記錄,請統計雙方的勝、平、負次數,並且給出雙方分別出什麼手勢的勝算最大。
輸入格式:
輸入第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
#include<cstdio> int main(){ int num,awin=0,bwin=0,equ=0,ac=0,aj=0,ab=0,bc=0,bj=0,bb=0; char a,b,c,d; scanf("%d",&num); for(int i=0;i<num;i++){ getchar(); //消化一個回車 scanf("%c %c",&a,&b); if(a=='C'){ if(b=='J'){ awin++; ac++; }else if(b=='B'){ bwin++; bb++; }else if(b=='C'){ equ++; } }else if(a=='J'){ if(b=='B'){ awin++; aj++; }else if(b=='C'){ bwin++; bc++; }else if(b=='J'){ equ++; } }else if(a=='B'){ if(b=='C'){ awin++; ab++; }else if(b=='J'){ bwin++; bj++; }else if(b=='B'){ equ++; } } } char awinmax,bwinmax; if ((ab>ac&&ab>aj)||(ab==ac&&ab>aj)||(ab==aj&&ab>ac)||(ab==ac&&ab==aj)) awinmax='B'; else if((ac>ab&&ac>aj)||(ac==aj&&ac>ab&&aj>ab)) awinmax='C'; else awinmax='J'; if ((bb>bc&&bb>bj)||(bb==bc&&bb>bj)||(bb==bj&&bb>bc&&bj>bc)||(bb==bc&&bb==bj)) bwinmax='B'; else if((bc>bb&&bc>bj)||(bc==bj&&bc>bb)) bwinmax='C'; else bwinmax='J'; printf("%d %d %d\n",awin,equ,bwin); printf("%d %d %d\n",bwin,equ,awin); printf("%c %c",awinmax,bwinmax); return 0; }