PAT乙级1018-锤子剪刀布
注意的点
- 本题问的是胜利时两个人用的最多的次数,所以在平局时不用加
- 第一次写的时候ai>bi 后来发现不对
- 不用大量的if/else 转换为数字会很简便
#include <cstdio>
int change(char c){
if(c=='B') return 0;
if(c=='C') return 1;
if(c=='J') return 2;
return 0;
}
int main(){
int n;
scanf("%d",&n);
char mp[3]={'B','C','J'};
int max_A[3]={0},max_B[3]={0};
int win_A=0,win_B=0,mA=0,mB=0;
for(int i=0;i<n;i++){
getchar();
char a,b;
scanf("%c %c",&a,&b);
int ai=change(a);
int bi=change(b);
if((ai+1)%3==bi){
win_A++;
max_A[ai]++;
}else if((bi+1)%3==ai){
win_B++;
max_B[bi]++;
} else{
}
}
for (int i = 1; i < 3; ++i) {
if(max_A[i]>max_A[mA]) mA=i;
if(max_B[i]>max_B[mB]) mB=i;
}
printf("%d %d %d\n",win_A,n-win_A-win_B,win_B);
printf("%d %d %d\n",win_B,n-win_A-win_B,win_A);
printf("%c %c\n",mp[mA],mp[mB]);
return 0;
}