PAT B1018 锤子剪刀布 (20 分)
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
输入格式:
输入第 1 行给出正整数 N(≤),即双方交锋的次数。随后 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 <stdio.h>
#include <map>
#include <algorithm>
#include <iostream>
using namespace std;
int cmp(char c1, char c2){
if (c1 == c2)return ;
else if (c1 == 'C'){
if (c2 == 'J')return ;
else return -;
}
else if (c1 == 'J'){
if (c2 == 'C')return -;
else return ;
}
else{
if (c2 == 'C')return ;
else return -;
}
}
int main(){
int n;
char c1, c2;
int j_p = , j_l = , y_p = , y_l = ;
int j_w[] = { };
int y_w[] = { };
scanf("%d", &n);
getchar();
for (int i = ; i<n; i++){ scanf("%c %c", &c1, &c2);
getchar(); int res = cmp(c1, c2);
if (res == ){
j_p++;
y_p++;
}
else if (res == ){
y_l++;
if (c1 == 'B')j_w[]++;
else if (c1 == 'C')j_w[]++;
else j_w[]++;
}
else{
j_l++;
if (c2 == 'B')y_w[]++;
else if (c2 == 'C')y_w[]++;
else y_w[]++;
}
}
printf("%d %d %d\n", j_w[] + j_w[] + j_w[], j_p, j_l);
printf("%d %d %d\n", y_w[] + y_w[] + y_w[], y_p, y_l);
int max_j = , max_y = ;
for (int i = ; i<; i++){
if (j_w[i]>max_j)max_j = j_w[i];
if (y_w[i]>max_y)max_y = y_w[i];
} for (int i = ; i < ; i++){
if (j_w[i] == max_j){
if (i == )printf("B ");
else if (i == )printf("C ");
else printf("J ");
max_j = ;
}
}
for (int i = ; i < ; i++){
if (y_w[i] == max_y){
if (i == )printf("B");
else if (i == )printf("C");
else printf("J");
max_y = ;
}
}
system("pause");
}
注意点:题目逻辑很简单,出现问题在读入输入数据的时候,读字符出现问题,scanf(“%c %c”,&c1,&c2),看起来没问题,后面一定要加一个getchar来读换行符,包括读n后面也要加getchar,读换行符,否则读入的字符就变成c1是换行符了。用 cin 就不会存在这些问题了。
PAT B1018 锤子剪刀布 (20 分)的更多相关文章
- PAT B1018.锤子剪刀布(20)
一个没有通过,不知道为何 #include <cstdio> int change(char c) { if(c == 'B') return 0; if(c == 'C') return ...
- PAT Basic 1018 锤子剪刀布 (20 分)
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第 1 行给出正整数 ...
- PAT 1018. 锤子剪刀布 (20)
现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第1行给出正整数N(<=105),即双方交锋的次数.随后N行,每行给出一次交锋的信息,即 ...
- B1018 锤子剪刀布 (20分)
B1018 锤子剪刀布 (20分) 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势. 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. ...
- 【PAT】1018 锤子剪刀布 (20)(20 分)
1018 锤子剪刀布 (20)(20 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算 ...
- PAT 1018 锤子剪刀布(20)
1018 锤子剪刀布 (20)(20 分) 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方 ...
- PAT乙级 1018. 锤子剪刀布 (20)
1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩“锤子剪刀布”的游 ...
- 牛客网 PAT 算法历年真题 1008 : 锤子剪刀布 (20)
锤子剪刀布 (20) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 大家应该都会玩“锤子剪刀布”的游戏:现给出 ...
- PAT 乙级 1018 锤子剪刀布 (20) C++版
1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩“锤子剪刀布”的游 ...
随机推荐
- vue 相对路径的图片 不显示问题
例如 data () { return { img: '../../images/jifen/index/img_list_default_pic.jpg' //路径也没问题啊,怎么不显示呢,难道他瞎 ...
- django—xadmin中集成富文本编辑器ueditor
一.安装 pip命令安装,由于ueditor为百度开发的一款富文本编辑框,现已停止维护,如果解释器为python2,则直接pip install djangoueditor 解压包安装,python3 ...
- layui数据表格的td模板
1.常用操作模板 <script type="text/html" id="userbar"> <a class="layui-bt ...
- 常用,好用的js代码
记录看到或者用到的js代码,长期更新! 判断是否是正整数 (number-0)|0 !== number-0 解析: number-0 转换成数字,再通过位移运算(|)判断是否跟原数字相等 安全检查j ...
- loadrunner 脚本开发- web_url函数详解
脚本开发- web_url函数详解 by:授客 QQ:1033553122 加载指定url的web页面(GET请求) C语言函数 int web_url( const char *StepName ...
- PHP正则自动验证传入数据
本文出至:新太潮流网络博客 /** * [is_string_regular_type 正则自动验证传入数据] * @E-mial wuliqiang_aa@163.com * @TIME 2017- ...
- Azure Resource Manager 概述
应用程序的基础结构通常由许多组件构成:可能有虚拟机.存储帐户和虚拟网络,或 Web 应用.数据库.数据库服务器和第三方服务. 这些组件不会以独立的实体出现,而是以单个实体的相关部件和依赖部件出现. 如 ...
- MySQL复制 slave_exec_mode 参数IDEMPOTENT 说明
背景: 今天无意当中看到参数slave_exec_mode,从手册里的说明看出该参数和MySQL复制相关,是可以动态修改的变量,默认是STRICT模式(严格模式),可选值有IDEMPOTENT模式 ...
- (笔记)MySQL 之 Metadata Locking 研究(5.5版本)
MySQL5.5 中引入了 metadata lock. 顾名思义,metadata lock 不是为了保护表中的数据的,而是保护 database objects(元数据)的.包括表结构.sch ...
- C#-老生常谈的 值类型与引用类型
特殊的String 说起值类型和引用类型,大家都知道这么个事,很多时候我们会拿String做值类型来做比较,但实际上String虽然是值类型,却表现的有点特别 String示例 看下面的一个例子: 话 ...