剪刀石头布胜负统计

题目描述

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:

现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

 

输入

输入第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 <cstdio>                                        

int main(){                //实际提交时,提示输出超限,但本地运行正常,为何???
  int n;
  char a,b;

  fflush(stdin);
  while(scanf("%d",&n)!=EOF){
    int agood=0,abequal=0,abad=0;
    int av[3]={0},bv[3]={0}; //序 B布 C锤 J剪刀;
    char s[3]={'B','C','J'};
    while(n-->0){
      fflush(stdin);        //注意该处,必须在之前加上fflush(stdin)以清理缓存   》》因为char类型可以读取任何字符,包括\n \0 以及空格等等,切记,切记
      scanf("%c %c",&a,&b);

      //printf("%c %c",a,b);
      switch(a){
      case 'B':
        switch(b){
        case 'B':
          abequal++;
          break;
        case 'C':
          agood++;
          av[0]++;
          break;
        case 'J':
          abad++;
          bv[2]++;
          break;
        default:break;
        }
        break;
      case 'C':
        switch(b){
        case 'B':
          abad++;
          bv[0]++;
          break;
        case 'C':
          abequal++;
          break;
        case 'J':
          agood++;
          av[1]++;
          break;
        default:break;
        }
        break;
      case 'J':
        switch(b){
        case 'B':
          agood++;
          av[2]++;
          break;
        case 'C':
          abad++;
          bv[1]++;
          break;
        case 'J':
          abequal++;
          break;
        default:break;
        }
        break;
        default:break;
        }

      }
      printf("%d %d %d\n",agood,abequal,abad);
      printf("%d %d %d\n",abad,abequal,agood);
      int am=0,bm=0;
      am=(av[0]>=av[1]?0:1);
      if(av[am]<av[2])
        am=2;
      bm=(bv[0]>=bv[1]?0:1);
      if(bv[bm]<bv[2])
        bm=2;
      printf("%c %c\n",s[am],s[bm]);
    }
  return 0;
}

 

posted @ 2018-01-15 20:53  Dart2100  阅读(713)  评论(0编辑  收藏  举报