admin管理员组文章数量:1621657
题目描述
大家应该都会玩“锤子剪刀布”的游戏:
现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。
输入描述
输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有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 n;
cin>>n;
int ca[]={0,0,0};// 胜 平 负
int cb[]={0,0,0};// 胜 平 负
int awin[]={0,0,0};// B C J
int bwin[]={0,0,0};// B C J
for(int i=0; i<n; i++) {
char a,b;
cin>>a>>b;
if(a=='B') {
if(b=='B') {
ca[1]++;
cb[1]++;
}
if(b=='C') {
ca[0]++;
cb[2]++;
awin[0]++;
}
if(b=='J') {
cb[0]++;
ca[2]++;
awin[2]++;
}
}
if(a=='C') {
if(b=='B') {
ca[2]++;
cb[0]++;
bwin[0]++;
}
if(b=='C') {
ca[1]++;
cb[1]++;
}
if(b=='J') {
ca[0]++;
cb[2]++;
awin[1]++;
}
}
if(a=='J') {
if(b=='B') {
ca[0]++;
cb[2]++;
awin[2]++;
}
if(b=='C') {
cb[0]++;
ca[2]++;
bwin[1]++;
}
if(b=='J') {
ca[1]++;
cb[1]++;
}
}
}
cout<<ca[0]<<" "<<ca[1]<<" "<<ca[2]<<endl;
cout<<cb[0]<<" "<<cb[1]<<" "<<cb[2]<<endl;
if(awin[0]>=awin[1]&& awin[0]>=awin[2]) {
cout<<"B ";
} else if(awin[1]>=awin[0] && awin[1]>=awin[2]) {
cout<<"C ";
} else {
cout<<"J ";
}
if(bwin[0]>=bwin[1]&& bwin[0]>=bwin[2]) {
cout<<"B";
} else if(bwin[1]>=bwin[0] && bwin[1]>=bwin[2]) {
cout<<"C";
} else {
cout<<"J";
}
}
版权声明:本文标题:PAT乙级真题:C++:锤子剪刀布 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1728851346a1176711.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论