zoukankan      html  css  js  c++  java
  • 锤子剪刀布 (20)

     

    时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小)

    题目描述

    大家应该都会玩“锤子剪刀布”的游戏:

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

    输入描述:

    输入第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>
    #include<iostream>
    using namespace std;
    int B1=0,J1=0,C1=0,B2=0,J2=0,C2=0;
    int solve(char a,char b){
        if(a == b) return 0;
        if(a == 'C' && b == 'J'){
            C1++;
            return 1;
        }
        if(a == 'J' && b == 'C'){
            C2++;
            return -1;
        } 
        if(a == 'B' && b == 'C'){
            B1++;
            return 1;
        }
        if(a == 'C' && b == 'B'){
            B2++;
            return -1;
        }
        if(a == 'J' && b == 'B'){
            J1++; 
            return 1;
        }
        if(a == 'B' && b == 'J'){
            J2++;
            return -1;
        }
        return 0;    
    }
    int main(void){
        char a , b;
        int n , win1 = 0 , win2 = 0 , lose1 = 0 , lose2 = 0 , ping = 0 , result ;
        cin >> n;
        for(int i=1;i<=n;i++){
            cin >> a >> b;
            result = solve( a , b );
            if(result == 1){
                win1++;
                lose2++;
            }
            if(result == -1){
                lose1++;
                win2++;
            }
            if(result == 0){
                ping++;
            }
        }
        printf("%d %d %d
    ",win1,ping,lose1);
        printf("%d %d %d
    ",win2,ping,lose2);
        int max1 = max( B1 , max(J1 , C1));
        int max2 = max( B2 , max(J2 , C2));
        if(B1 == max1){
            printf("B ");
        }
        else if(C1 == max1){
            printf("C ");
        }
        else {
            printf("J ");
        }
        if(B2 == max2){
            printf("B");
        }
        else if(C2 == max2){
            printf("C");
        }
        else {
            printf("J");
        }
        return 0;
    }
  • 相关阅读:
    42.接雨水 Trapping Rain Water
    6.Zigzag Z 字形变换
    级数求和
    三连击(两个for循环轻松搞定)
    经济学人:Facebook的第三幕(1)
    markdown编辑器
    QUERY
    在badi中按照正常的message&nbsp;x…
    建workflow的时候提示Prefix&nbsp;…
    ALV控件的简单案例(一)
  • 原文地址:https://www.cnblogs.com/zuimeiyujianni/p/8506492.html
Copyright © 2011-2022 走看看