1018. 锤子剪刀布 (20)
2016-01-11 23:02
155 查看
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
输入格式:
输入第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<iostream>
using namespace std;
int main()
{
int num;
int awin=0,afail=0,a0=0;
int bwin=0,bfail=0,b0=0;
int aB=0,aC=0,aJ=0;
int bB=0,bC=0,bJ=0;
cin>>num;
while(num--)
{
char a,b;
cin>>a>>b;
if(a=='B')
{
if(b=='C')
{
awin++;bfail++;aB++;
}
else if(b=='J')
{
bwin++;afail++;bJ++;
}
else
{
a0++;b0++;
}
}
else if(a=='C')
{
if(b=='J')
{
awin++;bfail++;aC++;
}
else if(b=='B')
{
bwin++;afail++;bB++;
}
else
{
a0++;b0++;
}
}
else
{
if(b=='B')
{
awin++;bfail++;aJ++;
}
else if(b=='C')
{
bwin++;afail++;bC++;
}
else
{
a0++;b0++;
}
}
}
cout<<awin<<" "<<a0<<" "<<afail<<endl;
cout<<bwin<<" "<<b0<<" "<<bfail<<endl;
if(aB>=aC && aB>=aJ)
{
cout<<"B ";
}
else if(aC>=aB && aC>=aJ)
{
cout<<"C ";
}
else if(aJ>=aB && aJ>=aC)
{
cout<<"J ";
}
if(bB>=bC && bB>=bJ)
{
cout<<"B";
}
else if(bC>=bB && bC>=bJ)
{
cout<<"C";
}
else if(bJ>=bB && bJ>=bC)
{
cout<<"J";
}
return 0;
}
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
输入格式:
输入第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<iostream>
using namespace std;
int main()
{
int num;
int awin=0,afail=0,a0=0;
int bwin=0,bfail=0,b0=0;
int aB=0,aC=0,aJ=0;
int bB=0,bC=0,bJ=0;
cin>>num;
while(num--)
{
char a,b;
cin>>a>>b;
if(a=='B')
{
if(b=='C')
{
awin++;bfail++;aB++;
}
else if(b=='J')
{
bwin++;afail++;bJ++;
}
else
{
a0++;b0++;
}
}
else if(a=='C')
{
if(b=='J')
{
awin++;bfail++;aC++;
}
else if(b=='B')
{
bwin++;afail++;bB++;
}
else
{
a0++;b0++;
}
}
else
{
if(b=='B')
{
awin++;bfail++;aJ++;
}
else if(b=='C')
{
bwin++;afail++;bC++;
}
else
{
a0++;b0++;
}
}
}
cout<<awin<<" "<<a0<<" "<<afail<<endl;
cout<<bwin<<" "<<b0<<" "<<bfail<<endl;
if(aB>=aC && aB>=aJ)
{
cout<<"B ";
}
else if(aC>=aB && aC>=aJ)
{
cout<<"C ";
}
else if(aJ>=aB && aJ>=aC)
{
cout<<"J ";
}
if(bB>=bC && bB>=bJ)
{
cout<<"B";
}
else if(bC>=bB && bC>=bJ)
{
cout<<"C";
}
else if(bJ>=bB && bJ>=bC)
{
cout<<"J";
}
return 0;
}
相关文章推荐
- C++复制构造函数浅析(1)
- 【翻译自mos文章】OGG支持oracle db 11g中的不可见索引吗?
- 《Effective Modern C++》翻译--条款3: 理解decltype
- iOS APNS远程推送指导书
- 内存子系统的调优
- [Android]Android自定义View的实现
- 5种传值方式
- Web Essentials之Bundling
- 执行idea时出现"无效的源发行版"
- 第四十课 问题求解方法——穷举 【项目1-9】
- Mysql几种索引类型的区别及适用情况
- 文件子系统的调优
- 14.6 Spring MVC 测试框架(翻译)
- 利用KeyChain共享数据(唯一标示)
- 一起talk C栗子吧(第九十七回:C语言实例--使用消息队列进行进程间通信一)
- oracle数据库不支持mysql中limit功能
- Nginx详解-服务器集群
- 配置本地Yum源
- BZOJ 3110 ZJOI 2013 K大值查询 线段树套线段树
- 计算机组件及操作系统基础知识