锤子剪刀布

来源:互联网 发布:安卓小说阅读器源码 编辑:程序博客网 时间:2024/04/30 11:42

题目描述

大家应该都会玩“锤子剪刀布”的游戏。现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。

输入

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

输出

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

样例输入

10C JJ BC BB BB CC CC BJ BB CJ J

样例输出

5 3 22 3 5B B
#include<iostream>#include<iomanip>#include<cmath>#include<vector>#include<string>using namespace std;int main(){int sheng=0,fu=0,ping=0,max1=0,max2=0,zhi1=0,zhi2=0,h=0;int curr1[3]={0},curr2[3]={0};long N;string s1="",s2="",a,b;cin>>N;for(int i=0;i<N;i++){cin>>a>>b;s1.append(a);s2.append(b);}for(int m=0;m<N;m++){if(s1[m]==s2[m]){ping++;}h = s1[m]-s2[m];switch(h){case 1:  fu++;curr2[0]++; break;  case -1: sheng++; curr1[0]++; break; case 7: fu++; curr2[1]++;  break;     case -7: sheng++; curr1[1]++; break;  case 8: sheng++; curr1[2]++; break;  case -8: fu++; curr2[2]++; break;    }}cout<<sheng<<" "<<ping<<" "<<fu<<endl;cout<<N-sheng-ping<<" "<<ping<<" "<<sheng<<endl;for(int n=0;n<3;n++){if(max1<curr1[n]){max1=curr1[n];zhi1=n;}if(max2<curr2[n]){max2=curr2[n];zhi2=n;}}if(zhi1==0){cout<<"B ";}else if(zhi1==1){cout<<"C ";}else if(zhi1==2){cout<<"J ";}if(zhi2==0){cout<<"B";}else if(zhi2==1){cout<<"C";}else if(zhi2==2){cout<<"J";}return 0;}


0 0
原创粉丝点击