PAT (Basic Level) Practise (中文)- 1018. 锤子剪刀布 (20)
http://www.patest.cn/contests/pat-b-practise/1018
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
输入格式:
输入第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<stdio.h> int a2i(char c)
{
if(c=='B') return ;
else if(c=='C') return ;
else return ;
}
char i2a(int i)
{
if(i==) return 'B';
else if(i==) return 'C';
else return 'J';
} int main()
{
int n=;//双方交锋的次数
scanf("%d",&n); char jia,yi;
int sheng=,ping=,fu=; // 甲
int ying1[]={},ying2[]={}; //B“0 布” C“1 锤子” J“2 剪刀”、
for(int i=;i<n;i++)
{
getchar();
scanf("%c",&jia);
getchar();
scanf("%c",&yi); if(a2i(jia)==a2i(yi)) ping++;
else if((a2i(jia)-a2i(yi)+)%==) sheng++,ying1[a2i(jia)]++;
else fu++,ying2[a2i(yi)]++;
}
printf("%d %d %d\n",sheng,ping,fu);//输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔
printf("%d %d %d\n",fu,ping,sheng); int k=;
for(int i=;i<;i++)
if(ying1[i]>ying1[k]) k=i;
printf("%c",i2a(k));//第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯一,则输出按字母序最小的解。 k=;
for(int i=;i<;i++)
if(ying2[i]>ying2[k]) k=i;
printf(" %c",i2a(k));
return ;
}
#include<stdio.h>
int main()
{
int n=;
scanf("%d",&n); char jia,yi,chu[]={'B','C','J'};
int sheng=,ping=,fu=; // 甲
int ying1[]={,,},ying2[]={,,}; //B“0 布” C“1 锤子”、J“2 剪刀”、
for(int i=;i<n;i++)
{
getchar();
scanf("%c",&jia);
getchar();
scanf("%c",&yi); if(jia=='J' && yi=='B')
{
sheng++;
ying1[]++;
}
else if(jia=='B' && yi=='C')
{
sheng++;
ying1[]++;
}
else if(jia=='C' && yi=='J')
{
sheng++;
ying1[]++;
}
else if(jia=='B' && yi=='J')
{
fu++;
ying2[]++;
}
else if(jia=='C' && yi=='B')
{
fu++;
ying2[]++;
}
else if(jia=='J' && yi=='C')
{
fu++;
ying2[]++;
}
else
ping++;
} printf("%d %d %d\n",sheng,ping,fu);
printf("%d %d %d\n",fu,ping,sheng); int max=,k=;
for(int i=;i<;i++)
if(ying1[i]>max)
{
max=ying1[i];
k=i;
}
printf("%c",chu[k]); max=;
k=;
for(int i=;i<;i++)
if(ying2[i]>max)
{
max=ying2[i];
k=i;
}
printf(" %c",chu[k]);
return ;
}
PAT (Basic Level) Practise (中文)- 1018. 锤子剪刀布 (20)的更多相关文章
- PAT (Basic Level) Practise:1018. 锤子剪刀布
[题目链接] 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第1行 ...
- PAT乙级 1018. 锤子剪刀布 (20)
1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩“锤子剪刀布”的游 ...
- PAT 乙级 1018 锤子剪刀布 (20) C++版
1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩“锤子剪刀布”的游 ...
- 【PAT】1018 锤子剪刀布 (20)(20 分)
1018 锤子剪刀布 (20)(20 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算 ...
- PAT-乙级-1018. 锤子剪刀布 (20)
1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩“锤子剪刀布”的游 ...
- PAT Basic 1018 锤子剪刀布 (20 分)
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第 1 行给出正整数 ...
- PAT 1018. 锤子剪刀布 (20)
现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第1行给出正整数N(<=105),即双方交锋的次数.随后N行,每行给出一次交锋的信息,即 ...
- PAT 1018 锤子剪刀布(20)
1018 锤子剪刀布 (20)(20 分) 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方 ...
- PAT (Basic Level) Practise (中文)-1039. 到底买不买(20)
PAT (Basic Level) Practise (中文)-1039. 到底买不买(20) http://www.patest.cn/contests/pat-b-practise/1039 小红 ...
随机推荐
- Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals)【A,B,C】
翻车!翻车! codeforces782A A题: 水. 代码: #include <bits/stdc++.h> using namespace std; typedef long lo ...
- Litjson
http://www.cnblogs.com/peiandsky/archive/2012/04/20/2459219.html JSON(JavaScript Object Notation) 是一 ...
- Etherscan API 中文文档-交易以及检查交易收据状态
本文原文链接 点击这里获取Etherscan API 中文文档(完整版) 完整内容排版更好,推荐读者前往阅读. 交易(Transaction) 交易相关的 API,接口的参数说明请参考Ethersca ...
- 进击JavaScript核心 --- (1)基本数据类型
ES5之前提供了 5种基本数据类型 和 1种引用数据类型 基本数据类型:Undefined, Null, String, Number, Boolean 引用数据类型:Object ES6开始引入了一 ...
- JS高级学习历程-2
1.dom操作,利用dom创建无序列表.并追加到body里边,里面要求至少有四个项目. <!DOCTYPE html> <html lang="en"> & ...
- Linux新硬盘、分区、格式化、自动挂载
1.给硬盘分区 fdisk /dev/sdaCommand (m for help): nCommand actione extendedp primary partition (1-4)输入:ePa ...
- 集合中的 for-Each循环
数组的加强型的for-Each循环很简单,我们再来看一下集合中的for-Each 循环又是怎么样的.我们都知道集合中的遍历都是通过迭代(iterator)完成的.也许有人说,也可以按照下面的方式来遍 ...
- [软件工程基础]2017.11.06 第十次 Scrum 会议
具体事项 项目交接燃尽图 每人工作内容 成员 已完成的工作 计划完成的工作 工作中遇到的困难 游心 #62 调试生成报告代码:#60 整理物理网站上的实验流程:#71 撰写报告生成搭建文档: 李煦通 ...
- Tkinter 的三大布局管理器 pack、grid 和 place用法汇总
学习python的tkinter免不了要对各个组件进行位置的排放与设定,常用的布局管理器有grid,pack和place.这三种均用于同一父组件下的组件布局,但是也是有区别的,先看下他们各自的含义吧. ...
- 071 Simplify Path 简化路径
给定一个文档 (Unix-style) 的完全路径,请进行路径简化.例如,path = "/home/", => "/home"path = " ...