cf

http://codeforces.com/contest/173/problem/A

第一次做cf,感觉题目很好,贴下最简单的题目的代码

View Code
#include <iostream>
#include <cstring>
using namespace std;

char s1[1100],s2[1100];
int cal(char a,char b)
{
if(a==b) return 0;
if(a=='R'&&b=='S') return 1;
if(a=='S'&&b=='P') return 1;
if(a=='P'&&b=='R') return 1;
return -1;
}
int gcd(int a,int b)
{
int tmp;
while(a%b!=0)
{
tmp=a;
a=b;
b=tmp%b;
}
return b;
}
int main()
{
int n;
while(cin>>n)
{
cin>>s1>>s2;
int len1=strlen(s1);
int len2=strlen(s2);
int ans1=0,ans2=0;
int cyc=len1*len2/gcd(len1,len2);
for(int i=0;i<cyc;i++)
{
int tmp=cal(s1[i%len1],s2[i%len2]);
if(tmp==1) ans1++;
if(tmp==-1) ans2++;
}
ans1=ans1*(n/cyc),ans2=ans2*(n/cyc);
n%=cyc;
for(int i=0;i<n;i++)
{
int tmp=cal(s1[i%len1],s2[i%len2]);
if(tmp==1) ans1++;
if(tmp==-1) ans2++;
}
cout<<ans2<<" "<<ans1<<endl;
}
return 0;
}



posted on 2012-04-07 21:18  Goal  阅读(167)  评论(0编辑  收藏  举报

导航