中级守护
题目链接: 酷町堂:5258
5258 猜拳游戏3
经验值:1200 时间限制:1000毫秒
题目描述 Description
酷酷和丁丁玩猜拳,两人都按照一定的规律出拳,我们用A,B,C分别表示石头,剪刀,布。比如酷酷出拳的规律是“ABBC”,即他按照“石头,剪刀,剪刀,布,石头,剪刀,剪刀,布,……” 的顺序不断出拳。
现在给出两个人的出拳规律,以及比赛的局数n,请你算出猜了n局之后,谁获胜?
输入描述 Input Description
输入两行字符串,分别表示酷酷和丁丁出拳的规律;
第三行输入一个正整数n,表示猜拳的局数。
输出描述 Output Description
如果酷酷赢的局数多,输出“酷酷赢”以及赢的局数,空格隔开;
如果丁丁赢的局数多,输出“丁丁赢”以及赢的局数,空格隔开;
如果打成平局,则输出“平局”。
样例输入 Sample Input
ABC AB 5
样例输出 Sample Output
酷酷赢 2
数据范围及提示 Data Size & Hint
字符串长度不超过100,n<=1000000000
#include<iostream>
using namespace std;
int n,na,nb,A,B;
string a,b;
int ju(char a,char b){
if(a=='A'&&b=='B'||a=='B'&&b=='C'||a=='C'&&b=='A') return 1;
if(b=='A'&&a=='B'||b=='B'&&a=='C'||b=='C'&&a=='A') return -1;
return 0;
}
int main(){
cin>>a>>b>>n;
na=a.size();
nb=b.size();
for(int i=0;i<n;i++){
if(ju(a[i%na],b[i%nb])==1) A++;
if(ju(a[i%na],b[i%nb])==-1) B++;
}
if(A>B) cout<<"酷酷赢 "<<A;
else if(B>A) cout<<"丁丁赢 "<<B;
else cout<<"平局";
return 0;
}