1018 锤子剪刀布

一、题目

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

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

二、输入输出

输入格式

输入第 1 行给出正整数 N(≤10​5)(≤10^​5)(≤10​5),即双方交锋的次数。随后 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 <bits/stdc++.h>
using namespace std;
struct count_max
{char ch;int count;
} jia[3], yi[3];
bool cmp(count_max a, count_max b)
{if (a.count != b.count)return a.count > b.count;elsereturn a.ch < b.ch;
}
int main()
{jia[0].ch = 'C', jia[1].ch = 'J', jia[2].ch = 'B';yi[0].ch = 'C', yi[1].ch = 'J', yi[2].ch = 'B';int n;cin >> n;int jiawin = 0;int yiwin = 0;for (int i = 0; i < n; i++){char a, b;cin >> a >> b;if (a == 'C'){if (b == 'J'){jiawin++;jia[0].count++;}else if (b == 'B'){yiwin++;yi[2].count++;}}else if (a == 'B'){if (b == 'C'){jiawin++;jia[2].count++;}else if (b == 'J'){yiwin++;yi[1].count++;}}else if (a == 'J'){if (b == 'B'){jiawin++;jia[1].count++;}else if (b == 'C'){yiwin++;yi[0].count++;}}}sort(jia, jia + 3, cmp);sort(yi, yi + 3, cmp);cout << jiawin << ' ' << n - jiawin - yiwin << ' ' << yiwin << '\n';cout << yiwin << ' ' << n - jiawin - yiwin << ' ' << jiawin << '\n';cout << jia[0].ch << ' ' << yi[0].ch;return 0;
}

PAT (Basic Level) Practice1018 锤子剪刀布相关推荐

  1. PAT (Basic Level) 1018 锤子剪刀布 (20 point(s))

    #include <bits/stdc++.h> using namespace std;// 转换字符为数字 int change(char x){if(x == 'B') return ...

  2. 「PAT乙级真题解析」Basic Level 1018 锤子剪刀布 (问题分析+完整步骤+伪代码描述+提交通过代码)

    乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范.从小白开始逐步掌握用编程解决问题. PAT乙级BasicLevelPractice 1018 锤子剪刀布 问题分析 题目要求统计 ...

  3. Basic Level 1018. 锤子剪刀布 (20)

    大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势, 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第1行给出正整数N ...

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

    https://pintia.cn/problem-sets/994805260223102976/problems/994805304020025344 需要注意:甲或者乙可能是没有胜局的,那么此时 ...

  5. PAT (Basic Level) Practice (中文)1018 锤子剪刀布 python (无超时)

    出处: https://pintia.cn/problem-sets/994805260223102976/problems/994805304020025344 1018 锤子剪刀布 (20 分) ...

  6. pat 乙级 1018 锤子剪刀布(C++)

    题目 两人玩锤子剪刀布,现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第 1 行给出正整数 N(≤105 ),即双方交锋的次数.随后 N 行 ...

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

    锤子剪刀布 (20) 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最 ...

  8. 编程题目: PAT 1018. 锤子剪刀布 (20)

    1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩"锤子剪 ...

  9. [PAT乙级]1018 锤子剪刀布

    大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入 ...

最新文章

  1. 条件编译在内核中的使用(技巧1)
  2. PPT学习资源(总)
  3. webview加载本地html_安卓webview html5 自动播放本地视频,网上视频,可以循环播放...
  4. Python类的自定义属性访问及动态属性设置
  5. node.js实现图片上传(包含缩略图)
  6. WIN7系统激活后无法正常启动
  7. 如何找到status group里定义的所有status value
  8. **CI中使用IN查询(where_in)
  9. c语言流感,维生素C能防流感?专家:或减轻普通感冒引起不适症状
  10. python爬取qq音乐评论_教你用Python爬去QQ音乐评论
  11. Linux的环境中如何生成srw-rw---- 的文件权限?
  12. 校园导游图的课程设计(三)
  13. Python 数据可视化之matpotlib画图
  14. 巩固有私有VLAN和VLAN访问控制列表的网络
  15. sql2016/2017 卸载安装
  16. 计算机启动黑屏时间很长,win7开机黑屏时间长怎么办?win7开机黑屏很久解决办法...
  17. 计算机专业知识面狭窄,软件学院“计算机基础”实验教学改革探索
  18. 计算机excel按F4是那个公式,功能键F4你真的会用?Excel四大F4快捷操作,轻松解决工作中问题...
  19. 盘点五大国产数据库厂商
  20. h5网页在微信客户端打开,上传图片不能调用相机

热门文章

  1. onvif协议之抓图
  2. YOLO: Real-Time Object Detection 遇到的问题
  3. centos6.9终端命令
  4. 哈理工计算机学院学生会技术部,计算机与信息学院学生会简介
  5. 一篇搞定写毕设和画图表
  6. csgo跳投绑定指令_csgo控制台指令大全
  7. python tkinter获取屏幕大小_使用Python构建属于自己的Markdown编辑器
  8. Oracle 外部表加载监听日志,使用外部表访问监听日志
  9. python的设计哲学_Python的设计哲学
  10. php插件改名,自制functions.php文件or插件,防止升级或更换主题时被替换