pat乙级1018

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
代码如下:
// sfhao.cpp : 定义控制台应用程序的入口点。
//
#include <iostream>
#include<cstdio>
using namespace std;
int main()
{
    int N;
    scanf("%d",&N);
    int sheng=0,ping=0,fu=0;//分别记录甲胜局 平局 负局次数
    int jia_J=0,jia_B=0,jia_C=0;//记录甲赢得时候的手势
    int yi_J=0,yi_B=0,yi_C=0;//记录乙赢得时候的手势
    for(int i=0; i<N; i++)

    {
        char jia,yi;
        cin>>jia>>yi;

        switch(jia)
        {
        case ‘J‘:
        {
            if(yi==‘J‘)
                ping++;
            else if(yi==‘B‘)
            {
                sheng++;
                jia_J++;
            }

            else
            {
                fu++;
                yi_C++;
            }

        }
        break;
        case ‘B‘:
        {
            if(yi==‘B‘)
                ping++;
            else if(yi==‘C‘)
            {
                sheng++;
                jia_B++;
            }

            else
            {
                fu++;
                yi_J++;
            }
        }
        break;
        case ‘C‘:
        {
            if(yi==‘C‘)
                ping++;
            else if(yi==‘J‘)
            {
                sheng++;
                jia_C++;
            }
            else
            {
                fu++;
                yi_B++;
            }
        }
        break;
        }
    }
    cout<<sheng<<‘ ‘<<ping<<‘ ‘<<fu<<endl;
    cout<<fu<<‘ ‘<<ping<<‘ ‘<<sheng<<endl;
    if(jia_B>=jia_J&&jia_B>=jia_C)
        cout<<‘B‘<<‘ ‘;
    else if(jia_C>=jia_J)
        cout<<‘C‘<<‘ ‘;
    else cout<<‘J‘<<‘ ‘;
    if(yi_B>=yi_J&&yi_B>=yi_C)
        cout<<‘B‘<<endl;
    else if(yi_C>=yi_J)
        cout<<‘C‘<<endl;
    else cout<<‘J‘<<endl;

    return 0;

}
时间: 2024-11-10 17:34:45

pat乙级1018的相关文章

PAT乙级 1018. 锤子剪刀布 (20)

1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第1行给出正整数N(<=105),即双方交锋的次数.随后N行,每行给出一次交锋的信息,即甲.乙双方同时给出的的手势.C代表“锤子”.J代表“剪刀”.B代

PAT 乙级 1018 锤子剪刀布 (20) C++版

1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第1行给出正整数N(<=105),即双方交锋的次数.随后N行,每行给出一次交锋的信息,即甲.乙双方同时给出的的手势.C代表"锤

PAT乙级1018.锤子剪刀布 (20)(20 分)

1018 锤子剪刀布 (20)(20 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第1行给出正整数N(<=10^5^),即双方交锋的次数.随后N行,每行给出一次交锋的信息,即甲.乙双方同时给出的的手势.C代表“锤子”.J代表“剪刀”.B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格. 输出格式: 输出第1.2行分别给出甲.乙的胜.平.负次数

PAT——乙级1018

题目是 1018 锤子剪刀布 (20 point(s)) 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第 1 行给出正整数 N(≤10?5??),即双方交锋的次数.随后 N 行,每行给出一次交锋的信息,即甲.乙双方同时给出的的手势.C 代表"锤子".J 代表"剪刀".B 代表"布",第 1 个

1054. 求平均值 (20)-PAT乙级真题

今天刚刚到学校,2017年学习正式开始了,今天看到了浙大的<数据结构>这学期又要开课了,决定一定要跟着学习一遍:在大学生mooc网上学习:http://www.icourse163.org/course/zju-93001#/info :然后就是跟着<算法之美>也要同步看完. 然后就在PAT上随便做一道题,这是第一次通过AC,发现了两个比较好的博客主页:http://www.liuchuo.net/  和  https://www.joyhwong.com/   都总结了刷题的过程

PAT乙级1034. 有理数四则运算(20)

本题要求编写程序,计算2个有理数的和.差.积.商. 输入格式: 输入在一行中按照“a1/b1 a2/b2”的格式给出两个分数形式的有理数,其中分子和分母全是整型范围内的整数,负号只可能出现在分子前,分母不为0. 输出格式: 分别在4行中按照“有理数1 运算符 有理数2 = 结果”的格式顺序输出2个有理数的和.差.积.商.注意输出的每个有理数必须是该有理数的最简形式“k a/b”,其中k是整数部分,a/b是最简分数部分:若为负数,则须加括号:若除法分母为0,则输出“Inf”.题目保证正确的输出中没

PAT乙级1006题python3代码

PAT乙级1006题python3代码 目录 PAT乙级1006题python3代码 目录 代码 题目: 让我们用字母B来表示"百".字母S表示"十",用"12-n"来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数.例如234应该被输出为BBSSS1234,因为它有2个"百".3个"十".以及个位的4. 输入格式:每个测试输入包含1个测试用例,给出正整数n(<1000). 输出

PAT 乙级 1045

题目 题目地址:PAT 乙级 1045 题解 本题的解法比较巧妙,刚开始的试着用暴力求解,果不其然时间超限-- 变换思路,既然对于每个元素来说满足的条件是前小后大,那么对数组排序,对应的位置相等的即为题设要求的"可能主元",但是还有一个条件要保证当前是从左向右遍历的最大值:总结一下两个条件:1. 排序后对应位置数字相等:2. 当前操作元素是从左向右遍历中的最大值 同时还要注意,当输入n值为0时,除了需要输出"可能主元"的个数之外,还需要保留换行符'\n' 代码 1

PAT 乙级 1003

题目 题目地址:PAT 乙级 1003 题解 规律观察题,本题的关键在于把题读懂,同时还有几个比较容易疏忽的地方需要注意:总之这道题要考虑的东西更多,细节上也要特别注意: 规律:"如果 aPbTc 是正确的,那么 aPbATca 也是正确的",这是理解本题的关键信息,观察之后会发现,当b的字符串里再增加一个A,那么T之后的字符串就会多出a个A(特别注意,这里的 'ca' 实际上是 c + a 个A字符的关系),那么这个关系也就显而易见了,只有在 a * b = c 的条件下,才会有这样