1018 锤子剪刀布 (20 分)

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

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

输入格式:

输入第 1 行给出正整数 N(≤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

思路:

定义一个数组按{'B','C','J'}顺序存放,再定义一个函数change()来把a和b的字母转换为数字存放在k1和k2中。

判断输赢的方法:如果(k1+1)%3 == k2,则甲赢。如果k1 == k2,则平局。如果(k2 + 1)%3 == k1,则乙赢。

注意输入时scanf用%c会把换行符读入,导致程序运行错误。幸好用的是cin。

CODE:

#include<iostream>
using namespace std; int change(char c){
if(c=='B') return ;
if(c=='C') return ;
if(c=='J') return ;
} int main(){
int n;
char a,b;
int k1,k2;
int timeA[]={},timeB[]={};
int handA[]={},handB[]={};
char BCJ[] = {'B','C','J'};
cin>>n;
for(int i = ; i < n; i++){
cin>>a>>b;
k1 = change(a);
k2 = change(b);
if((k1 + ) % == k2){
timeA[]++;
timeB[]++;
handA[k1]++;
}else if(k1 == k2){
timeA[]++;
timeB[]++;
}else if((k2 + ) % == k1){
timeB[]++;
timeA[]++;
handB[k2]++;
}
}
cout<<timeA[]<<" "<<timeA[]<<" "<<timeA[]<<endl;
cout<<timeB[]<<" "<<timeB[]<<" "<<timeB[]<<endl;
int m1 = , m2 = ;
for(int i = ; i < ; i++){
if(handA[i] > handA[m1]) m1 = i;
if(handB[i] > handB[m2]) m2 = i;
}
cout<<BCJ[m1]<<" "<<BCJ[m2];
return ;
}

最新文章

  1. Configure bridge on a team interface using NetworkManager in RHEL 7
  2. JavaScript通过ID获取元素坐标
  3. js 数组处理函数
  4. sqlalchemy中文乱码问题解决方案
  5. HDFS的运行原理
  6. CountDownLatch、CyclicBarrier和Semaphore
  7. 深入Java集合学习系列:HashMap的实现原理
  8. Java:IO流之字符流缓冲区详解
  9. 浅析ado.net获取数据库元数据信息 DeriveParameters
  10. QT VS检测内存泄漏
  11. 如何让celery接受定制的参数
  12. 1583: [Usaco2009 Mar]Moon Mooing 哞哞叫
  13. Kafka中操作topic时 Error:Failed to parse the broker info from zookeeper
  14. 【LCA&amp;倍增】货物运输 @upcexam5909
  15. docker 应用-1(安装以及基础命令)
  16. 升级cordova
  17. openssl pem密钥文件rsa加密解密例子
  18. Asp.Net Core 集成 Hangfire 配置使用 Redis 存储
  19. mysql 效率 inner join 与 where in
  20. @Resource和@Autowired的异同

热门文章

  1. libevent源码分析
  2. linux 下搭建LAMP
  3. mysql 主键
  4. 数据库sql 开窗函数
  5. 批量添加数据SqlBulkCopy
  6. Django--初始化
  7. Entity Framework Tutorial Basics(43):Download Sample Project
  8. 如何在VS和CB中配置MySQL环境
  9. Laravel Gate 授权方式的使用指南
  10. TinyMCE4.x整合教程-Xproer.WordPaster