PAT乙 1018 锤子剪刀布
题解
根据输入的组合,分别统计甲乙两人使用C,J,B三种手势获得胜利的次数。根据总次数,算出甲乙两人胜,平,负的场数输出。
在输出个人使用哪种手势赢的更多时,优先输出字典序小的。
#include <string>
#include <iostream>
using namespace std;
char max(int C,int J,int B){
if(B>=C&&B>=J) return 'B';//B和C或者J相等时优先选择B
else if(C>B&&C>=J) return 'C'; //C和J相等时优先选择C
else if(J>B&&J>C) return 'J';
}
int main(){
int C1,J1,B1,C2,J2,B2,N,draw;
C1=J1=B1=C2=J2=B2=draw=0;
char A1,A2;
cin>>N;
while(cin>>A1>>A2){
if(A1==A2) draw++; //平局
else if(A1=='C'&&A2=='J') C1++;//甲使用C赢的次数
else if(A1=='J'&&A2=='B') J1++;
else if(A1=='B'&&A2=='C') B1++;
else if(A2=='C'&&A1=='J') C2++;//乙使用C赢的次数
else if(A2=='J'&&A1=='B') J2++;
else if(A2=='B'&&A1=='C') B2++;
}
cout<<C1+J1+B1<<" "<<draw<<" "<<N-C1-J1-B1-draw<<endl;
cout<<C2+J2+B2<<" "<<draw<<" "<<N-C2-J2-B2-draw<<endl;
cout<<max(C1,J1,B1)<<" "<<max(C2,J2,B2);
return 0;
}