P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布
#include<bits/stdc++.h>
using namespace std;
int rps(int a,int b)
{
if(a==b)return 1;
if(a==0&&b==1)return b;
else if(a==1&&b==0)return a;
if(a==0&&b==2)return a;
else if(a==2&&b==0)return b;
if(a==0&&b==3)return a;
else if(a==3&&b==0)return b;
if(a==0&&b==4)return b;
else if(a==4&&b==0)return a;
if(a==1&&b==2)return b;
else if(a==2&&b==1)return a;
if(a==1&&b==3)return a;
else if(a==3&&b==1)return b;
if(a==1&&b==4)return b;
else if(a==4&&b==1)return a;
if(a==2&&b==3)return b;
else if(a==3&&b==2)return a;
if(a==2&&b==4)return a;
else if(a==4&&b==2)return b;
if(a==3&&b==4)return a;
else if(a==4&&b==3)return b;
}
int main()
{
int n,n1,n2,head1=0,tail1,head2=0,tail2,s1=0,s2=0;
int k1[205],k2[205];
scanf("%d%d%d",&n,&n1,&n2);
tail1=n1;tail2=n2;
for(int i=1;i<=n1;i++)scanf("%d",&k1[i]);
for(int i=1;i<=n2;i++)scanf("%d",&k2[i]);
for(int i=1;i<=n;i++)
{
head1++;head2++;
if(rps(k1[head1],k2[head2])==k1[head1])s1++;
else if(rps(k1[head1],k2[head2])==k2[head2])s2++;
else if(rps(k1[head1],k2[head2])==1)
{
s1+=0;
s2+=0;
}
tail1++;tail2++;
k1[tail1]=k1[head1];
k2[tail2]=k2[head2];
}
printf("%d %d\n",s1,s2);
return 0;
}