1018. 锤子剪刀布 (20)

时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

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

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

输入格式:

输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。

输出格式:

输出第1、2行分别给出甲、乙的胜、平、负次数,数字间以1个空格分隔。第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯一,则输出按字母序最小的解。

输入样例:

  1. 10
  2. C J
  3. J B
  4. C B
  5. B B
  6. B C
  7. C C
  8. C B
  9. J B
  10. B C
  11. J J

输出样例:

  1. 5 3 2
  2. 2 3 5
  3. B B
    额。。。只是代码看起来比较长,其实思路很简单的,就是各种情况都模拟一下
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main()
  5. {
  6. int n;
  7. cin>>n;
  8. char a,b,aa,bbb;
  9. int as=,ap=,af=,bs=,bp=,bf=;
  10. int aj=,ac=,ab=,bj=,bc=,bb=;
  11. for(int i=; i<n; i++)
  12. {
  13. cin>>a>>b;
  14. if(a-b==-)
  15. {
  16. as++;
  17. ac++;
  18. bf++;
  19. }
  20. else if(a-b==)
  21. {
  22. bs++;
  23. bc++;
  24. af++;
  25. }
  26. else if(a-b==-)
  27. {
  28. as++;
  29. ab++;
  30. bf++;
  31. }
  32. else if(a-b==)
  33. {
  34. bs++;
  35. bb++;
  36. af++;
  37. }
  38. else if(a-b==)
  39. {
  40. as++;
  41. aj++;
  42. bf++;
  43. }
  44. else if(a-b==-)
  45. {
  46. bs++;
  47. bj++;
  48. af++;
  49. }
  50. else
  51. {
  52. ap++;
  53. bp++;
  54. }
  55. }
  56. if(ac>max(aj,ab))
  57. aa='C';
  58. else if(ab>max(aj,ac))
  59. aa='B';
  60. else if(aj>max(ab,ac))
  61. aa='J';
  62. else
  63. {
  64. if(ac==ab)
  65. aa='B';
  66. else if(ac==aj)
  67. aa='C';
  68. else
  69. aa='B';
  70. }
  71. if(bc>max(bj,bb))
  72. bbb='C';
  73. else if(bb>max(bj,bc))
  74. bbb='B';
  75. else if(bj>max(bb,bc))
  76. bbb='J';
  77. else
  78. {
  79. if(bc==bb)
  80. bbb='B';
  81. else if(bc==bj)
  82. bbb='C';
  83. else
  84. bbb='B';
  85. }
  86. cout<<as<<" "<<ap<<" "<<af<<endl;
  87. cout<<bs<<" "<<bp<<" "<<bf<<endl;
  88. cout<<aa<<" "<<bbb<<endl;
  89. return ;
  90. }

PAT-乙级-1018. 锤子剪刀布 (20)的更多相关文章

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

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

  2. PAT 乙级 1018 锤子剪刀布 (20) C++版

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

  3. 【PAT】1018 锤子剪刀布 (20)(20 分)

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

  4. PAT Basic 1018 锤子剪刀布 (20 分)

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

  5. PAT(B) 1018 锤子剪刀布(C:20分,Java:18分)

    题目链接:1018 锤子剪刀布 分析 用一个二维数组保存两人所有回合的手势 甲乙的胜,平,负的次数刚好相反,用3个变量表示就可以 手势单独保存在signs[3]中,注意顺序.题目原文:如果解不唯一,则 ...

  6. PAT (Basic Level) Practise (中文)- 1018. 锤子剪刀布 (20)

    http://www.patest.cn/contests/pat-b-practise/1018 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统 ...

  7. PAT 1018. 锤子剪刀布 (20)

    现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第1行给出正整数N(<=105),即双方交锋的次数.随后N行,每行给出一次交锋的信息,即 ...

  8. PAT 1018 锤子剪刀布(20)

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

  9. 牛客网 PAT 算法历年真题 1008 : 锤子剪刀布 (20)

    锤子剪刀布 (20) 时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 大家应该都会玩“锤子剪刀布”的游戏:现给出 ...

随机推荐

  1. spark RDD的元素顺序(ordering)测试

    通过实验发现: foreach()遍历的顺序是乱的 但: collect()取到的结果是依照原顺序的 take()取到的结果是依照原顺序的 为什么呢???? 另外,可以发现: take()取到了指定数 ...

  2. Java中几种常见排序算法

    日常操作中常见的排序方法有:冒泡排序.快速排序.选择排序.插入排序.希尔排序等. 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数 ...

  3. JavaScript之图片滚动

    向上滚动: <!doctype html> <title>javascript无缝滚动</title> <meta charset="utf-8&q ...

  4. CSS 文字溢出时的自动隐藏

    http://www.111cn.net/cssdiv/css/34050.htm 语法:overflow : visible | auto | hidden | scroll visible::不剪 ...

  5. UITableView的简单使用

    UITableView分为两种style:UITableViewStyleGrouped和UITableViewStylePlain. (一)UITableViewStyleGrouped #impo ...

  6. Windows Forms (一)

    导读 1.什么是 Windows Forms 2.需要学Windows Forms 么? 3.如何手写一个简单的Windows Forms 程序 4.对上面程序的说明 5.Form 类与Control ...

  7. 在O(1)时间删除链表结点

    题目:给定单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点. 链表结点与函数的定义如下: struct ListNode { int m_nValue; ListNode* m_p ...

  8. 【Linux】rsync同步文件 & 程序自启动

    rsync使用 1. 为什么使用rsync? rsync解决linux系统下文件同步时, 增量同步问题. 使用场景: 线上需要定时备份数据文件(视频资源), 使用rsync完成每天的增量备份. 参见: ...

  9. 第三章 用SDK编译出第一个在Linux下的软件界面

    第三章 用SDK编译出第一个在Linux下的软件界面 先创建一个工程目录“mkdir project1”,进入目录,创建main.cpp文件,编写代码如下: 代码内容暂时可以先不理解,先让程序跑起来再 ...

  10. IAR:Error [Li005]:no definition for"***" 问题之连接

    对于 IAR 出现的 Error[Li005] 链接错误,网上已经给出了比较详尽的解决方法,而对于这次记录,主要是记录解决问题的思路. 网上给出的方法:http://blog.csdn.net/yue ...