PAT乙級(Basic Level)1018(C++)
阿新 • • 發佈:2019-01-24
現給出兩人的交鋒記錄,請統計雙方的勝、平、負次數,並且給出雙方分別出什麼手勢的勝算最大。
輸入格式:
輸入第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<iostream> using namespace std; int main(){ int n;//兩人比賽n次 cin>>n; int a[10];//記錄兩人比賽的結果的陣列 int b[10];//123甲456乙 char jia,yi; for(int i=0;i<n;i++){ cin>>jia>>yi;//迴圈輸入比賽結果 if(jia=='C'){ switch(yi){ case 'C'://平局 a[2]++; break; case 'B'://乙贏 a[1]++; b[6]++; break; case 'J': //甲贏 a[0]++; b[1]++; break; } }else if(jia=='B'){ switch(yi){ case 'B'://平局 a[2]++; break; case 'J'://乙贏 a[1]++; b[5]++; break; case 'C'://甲贏 a[0]++; b[3]++; break; } }else{//jia==J switch(yi){ case 'J'://平局 a[2]++; break; case 'B'://甲贏 a[0]++; b[2]++; break; case 'C'://乙贏 a[1]++; b[4]++; break; } } } cout<<a[0]<<" "<<a[2]<<" "<<a[1]<<endl;//甲 cout<<a[1]<<" "<<a[2]<<" "<<a[0]<<endl;//乙 if(b[3]>=b[1]&&b[3]>=b[2]){ cout<<"B"; }else if(b[2]>=b[1]){ cout<<"J"; }else{ cout<<"C"; } if(b[4]>=b[5]&&b[4]>=b[6]){ cout<<" "<<"C"; }else if(b[5]>=b[6]){ cout<<" "<<"J"; }else{ cout<<" "<<"B"; } return 0; }