zoukankan      html  css  js  c++  java
  • PAT-乙级-1018. 锤子剪刀布 (20)

    1018. 锤子剪刀布 (20)

    时间限制
    100 ms
    内存限制
    65536 kB
    代码长度限制
    8000 B
    判题程序
    Standard
    作者
    CHEN, Yue

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

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

    输入格式:

    输入第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
    额。。。只是代码看起来比较长,其实思路很简单的,就是各种情况都模拟一下
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 
     4 int main()
     5 {
     6     int n;
     7     cin>>n;
     8     char a,b,aa,bbb;
     9     int as=0,ap=0,af=0,bs=0,bp=0,bf=0;
    10     int aj=0,ac=0,ab=0,bj=0,bc=0,bb=0;
    11     for(int i=0; i<n; i++)
    12     {
    13         cin>>a>>b;
    14         if(a-b==-7)
    15         {
    16             as++;
    17             ac++;
    18             bf++;
    19         }
    20         else if(a-b==7)
    21         {
    22             bs++;
    23             bc++;
    24             af++;
    25         }
    26         else if(a-b==-1)
    27         {
    28             as++;
    29             ab++;
    30             bf++;
    31         }
    32         else if(a-b==1)
    33         {
    34             bs++;
    35             bb++;
    36             af++;
    37         }
    38         else if(a-b==8)
    39         {
    40             as++;
    41             aj++;
    42             bf++;
    43         }
    44         else if(a-b==-8)
    45         {
    46             bs++;
    47             bj++;
    48             af++;
    49         }
    50         else
    51         {
    52             ap++;
    53             bp++;
    54         }
    55     }
    56     if(ac>max(aj,ab))
    57         aa='C';
    58     else if(ab>max(aj,ac))
    59         aa='B';
    60     else if(aj>max(ab,ac))
    61         aa='J';
    62     else
    63     {
    64         if(ac==ab)
    65             aa='B';
    66         else if(ac==aj)
    67             aa='C';
    68         else
    69             aa='B';
    70     }
    71     if(bc>max(bj,bb))
    72         bbb='C';
    73     else if(bb>max(bj,bc))
    74         bbb='B';
    75     else if(bj>max(bb,bc))
    76         bbb='J';
    77     else
    78     {
    79         if(bc==bb)
    80             bbb='B';
    81         else if(bc==bj)
    82             bbb='C';
    83         else
    84             bbb='B';
    85     }
    86     cout<<as<<" "<<ap<<" "<<af<<endl;
    87     cout<<bs<<" "<<bp<<" "<<bf<<endl;
    88     cout<<aa<<" "<<bbb<<endl;
    89     return 0;
    90 }
    我会一直在
  • 相关阅读:
    elk
    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 解决方法
    openssh 升级到8.2版本 (Linux 7)
    Linux 结合grep kill掉指定字符进程
    mysql 主从由于事务性挂断执行语句
    plsql 安装
    linux 7 本地化安装docker (阿里云版)
    docker 配置加速器
    Oracle 归档日志
    多线程事件
  • 原文地址:https://www.cnblogs.com/zhien-aa/p/5660432.html
Copyright © 2011-2022 走看看