链接:www.nowcoder.com/questionTer…
来源:牛客网
大家应该都会玩“锤子剪刀布”的游戏:
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
输入描述:
输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代
表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。
输出描述:
输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯
一,则输出按字母序最小的解。
示例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
链接:https://www.nowcoder.com/questionTerminal/79db907555c24b15a9c73f7f7d0e2471?toCommentId=3225314
来源:牛客网
#include <iostream>
using namespace std;
struct Caiquan
{
int jia_win=0;
int jia_lose=0;
int tie=0;
int yi_win=0;
int yi_lose=0;
int jia_J=0;
int jia_C=0;
int jia_B=0;
int yi_J=0;
int yi_C=0;
int yi_B=0;
}caiquan;
int main()
{
int N,i;
char j,y;
cin>>N;
for(i=0;i<N;i++)
{
cin>>j;
getchar();
cin>>y;
if((j=='J'&&y=='J')||(j=='C'&&y=='C')||(j=='B'&&y=='B'))
{
caiquan.tie+=1;
}
else if(j=='J'&&y=='B')
{
caiquan.jia_win+=1;
caiquan.yi_lose+=1;
caiquan.jia_J+=1;
}
else if(j=='C'&&y=='J')
{
caiquan.jia_win+=1;
caiquan.yi_lose+=1;
caiquan.jia_C+=1;
}
else if(j=='B'&&y=='C')
{
caiquan.jia_win+=1;
caiquan.yi_lose+=1;
caiquan.jia_B+=1;
}
else if(y=='J'&&j=='B')
{
caiquan.jia_lose+=1;
caiquan.yi_win+=1;
caiquan.yi_J+=1;
}
else if(y=='C'&&j=='J')
{
caiquan.jia_lose+=1;
caiquan.yi_win+=1;
caiquan.yi_C+=1;
}
else if(y=='B'&&j=='C')
{
caiquan.jia_lose+=1;
caiquan.yi_win+=1;
caiquan.yi_B+=1;
}
}
cout<<caiquan.jia_win<<" "<<caiquan.tie<<" "<<caiquan.jia_lose<<endl;
cout<<caiquan.yi_win<<" "<<caiquan.tie<<" "<<caiquan.yi_lose<<endl;
if(caiquan.jia_B>=caiquan.jia_C&&caiquan.jia_B>=caiquan.jia_J)cout<<"B ";
else if(caiquan.jia_C>caiquan.jia_B&&caiquan.jia_C>=caiquan.jia_J)cout<<"C ";
else if(caiquan.jia_J>caiquan.jia_B&&caiquan.jia_J>caiquan.jia_C)cout<<"J ";
if(caiquan.yi_B>=caiquan.yi_C&&caiquan.yi_B>=caiquan.yi_J)cout<<"B";
else if(caiquan.yi_C>caiquan.yi_B&&caiquan.yi_C>=caiquan.yi_J)cout<<"C";
else if(caiquan.yi_J>caiquan.yi_B&&caiquan.yi_J>caiquan.yi_C)cout<<"J";
}