PAT1018. 锤子剪刀布 (20)

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

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

输入格式:

输入第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
思路:好好利用数组进行代码设计,设计的变量不要太过于相似

 1 #include<stdio.h>
 2 #include<iostream>
 3 using namespace std;
 4 int winA=0,loseA=0,equall=0;
 5 int Acount[3]={0,0,0};
 6 int Bcount[3]={0,0,0};
 7 void Judge(char A,char B)
 8 {
 9     if(A==‘B‘&&B==‘C‘)
10     {
11            winA++;
12            Acount[0]++;
13     }
14     else if(A==‘C‘&&B==‘J‘)
15     {
16         winA++;
17         Acount[1]++;
18     }
19     else if(A==‘J‘&&B==‘B‘)
20     {
21         winA++;
22         Acount[2]++;
23     }
24     else if(B==‘B‘&&A==‘C‘)
25     {
26            loseA++;
27            Bcount[0]++;
28     }
29     else if(B==‘C‘&&A==‘J‘)
30     {
31         loseA++;
32         Bcount[1]++;
33     }
34     else if(B==‘J‘&&A==‘B‘)
35     {
36         loseA++;
37         Bcount[2]++;
38     }
39     else
40        equall++;
41 }
42
43
44 void Print(int num)
45 {
46     if(num==0)
47       printf("B");
48     else if(num==1)
49       printf("C");
50     else if(num==2)
51       printf("J");
52 }
53 int main(int argc, char** argv) {
54     int N;
55     scanf("%d",&N);
56
57     while(N--)
58     {
59         char A,B;
60         cin>>A>>B;
61     //    scanf("%c%c",&A,&B);
62         Judge(A,B);
63     }
64     int MostwinA=0,MostwinB=0;
65     if(Acount[0]>=Acount[1]&&Acount[0]>=Acount[2])
66         MostwinA=0;
67     else if(Acount[1]>=Acount[0]&&Acount[1]>=Acount[2])
68         MostwinA=1;
69     else if(Acount[2]>=Acount[0]&&Acount[2]>=Acount[1])
70         MostwinA=2;
71     if(Bcount[0]>=Bcount[1]&&Bcount[0]>=Bcount[2])
72         MostwinB=0;
73     else if(Bcount[1]>=Bcount[0]&&Bcount[1]>=Bcount[2])
74         MostwinB=1;
75     else if(Bcount[2]>=Bcount[0]&&Bcount[2]>=Bcount[1])
76         MostwinB=2;
77     printf("%d %d %d\n",winA,equall,loseA);
78     printf("%d %d %d\n",loseA,equall,winA);
79     Print(MostwinA);
80     putchar(‘ ‘);
81     Print(MostwinB);
82
83 }


时间: 2024-08-04 03:33:28

PAT1018. 锤子剪刀布 (20)的相关文章

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

1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第1行给出正整数N(<=105),即双方交锋的次数.随后N行,每行给出一次交锋的信息,即甲.乙双方同时给出的的手势.C代表“锤子”.J代表“剪刀”.B代

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

1018. 锤子剪刀布 (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第1行给出正整数N(<=105),即双方交锋的次数.随后N行,每行给出一次交锋的信息,即甲.乙双方同时给出的的手势.C代表"锤

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

1018 锤子剪刀布 (20)(20 分) 大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第1行给出正整数N(<=10^5^),即双方交锋的次数.随后N行,每行给出一次交锋的信息,即甲.乙双方同时给出的的手势.C代表“锤子”.J代表“剪刀”.B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格. 输出格式: 输出第1.2行分别给出甲.乙的胜.平.负次数

PTA乙级 (1018 锤子剪刀布 (20分))

1018 锤子剪刀布 (20分) https://pintia.cn/problem-sets/994805260223102976/problems/994805304020025344 #include <iostream> #include <cstdio> #include <cstring> #include <string> #include <cmath> #include <algorithm> using names

锤子剪刀布 (20)

时间限制 1000 ms 内存限制 32768 KB 代码长度限制 100 KB 判断程序 Standard (来自 小小) 题目描述 大家应该都会玩"锤子剪刀布"的游戏: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入描述: 输入第1行给出正整数N(<=105),即双方交锋的次数.随后N行,每行给出一次交锋的信息,即甲.乙双方同时给出的的手势.C代表"锤子".J代表"剪刀".B代 表&quo

1018. 锤子剪刀布 (20)

时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第1行给出正整数N(<=105),即双方交锋的次数.随后N行,每行给出一次交锋的信息,即甲.乙双方同时给出的的手势.C代表"锤子".J代表"

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个空格. 输出

1018. 锤子剪刀布 (20) (数学啊 ZJU_PAT)

题目链接:http://www.patest.cn/contests/pat-b-practise/1018 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负次数,并且给出双方分别出什么手势的胜算最大. 输入格式: 输入第1行给出正整数N(<=105),即双方交锋的次数.随后N行,每行给出一次交锋的信息,即甲.乙双方同时给出的的手势.C代表"锤子".J代表"剪刀".B代表

PAT:1018. 锤子剪刀布 (20) AC

#include<stdio.h> #include<stdlib.h> int main() { int n,maxA,maxB; maxA=maxB=-1; int A[3]={0},B[3]={0}; //0,1,2位置分别存胜利,平局,失败..填入次数 int HARSH1[3]={0},HARSH2[3]={0}; //0:布,1锤子,2剪刀: scanf("%d",&n); for(int t=0 ; t<n ; ++t) { getc