构造sg函数,每个数减2或减3;构造sg函数就是每个数都要减2和减3取mex数组中最小的数。
sg[0]=0; sg[1]=0; sg[2]=mex(sg(2-2))=mex(sg(0))=mex(0)=1; sg[3]=mex(sg(3-3),sg(3-2))=mex(sg(0),sg(1))=mex(0)=1; sg[4]=mex(sg(4-3),sg(4-2))=mex(sg(1),sg(2))=mex(0,1)=2; sg[5]=mex(sg(5-3),sg(5-2))=mex(sg(2),sg(3))=mex(1)=0;
#include<bits/stdc++.h>
using namespace std;
int sg[6];
int n,x;
int main( )
{
sg[0]=sg[1]=0;
sg[2]=sg[3]=1;
sg[4]=2;
int ans=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
ans^=(sg[x%5]);
}
if(ans==0)
{
printf("Watson\n");
}
else
{
printf("Rybka\n");
}
return 0;
}
网友评论