思路:把情况都列出来并计数
最重要的是:如果解不唯一,则输出按字母序最小的解
那我们在定义字符数组char str[4]={"BCJ"};一定按顺序来存放,这样之后判断最多胜场的手势就是得到序号最小的
#include<iostream>//BCJ对应012
using namespace std;
int main()
{
char str[4]={"BCJ"};
int n;
int maxa=0,maxb=0,ak=0,bk=0;
int A[3]={0};
int B[3]={0};
int wina=0,winb=0,la=0,lb=0;
char a,b;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a>>b;
if(a=='C'&&b=='J')
{
wina++;
lb++;
A[1]++;
}
if(a=='C'&&b=='B')
{
la++;
winb++;
B[0]++;
}
if(a=='J'&&b=='C')
{
la++;
winb++;
B[1]++;
}
if(a=='J'&&b=='B')
{
wina++;
lb++;
A[2]++;
}
if(a=='B'&&b=='C')
{
wina++;
lb++;
A[0]++;
}
if(a=='B'&&b=='J')
{
la++;
winb++;
B[2]++;
}
}
for(int i=0;i<3;i++)
{
if(maxa<A[i])
{
maxa=A[i];
ak=i;
}
if(maxb<B[i])
{
maxb=B[i];
bk=i;
}
}
cout<<wina<<' '<<n-wina-la<<' '<<la<<'\n';
cout<<winb<<' '<<n-winb-lb<<' '<<lb<<'\n';
cout<<str[ak]<<' '<<str[bk];
}