Pagini recente » Cod sursa (job #2970940) | Cod sursa (job #2296743) | Diferente pentru runda/fmi-no-stress-9-warmup intre reviziile 17 si 16 | Cod sursa (job #181153) | Cod sursa (job #202931)
Cod sursa(job #202931)
#include <cstdio>
#include <cstring>
using namespace std;
int i,j,sg[50000],k,v[50000],t,nr,s,rez,n;
int main(){
freopen("bowling.in","r",stdin);
freopen("bowling.out","w",stdout);
sg[0]=0;
sg[1]=1;
sg[2]=2;
for (i=3;i<=100;i++)
{
//dau jos una
memset(v,0,sizeof(v));
for (j=0;j<=i-1;j++)
v[sg[j]^(sg[i-j-1])]=1;
//dau jos doua
for (j=0;j<=i-2;j++)
v[sg[j]^(sg[i-j-2])]=1;
for (j=0;j<=100;j++)
if (v[j]==0)
{
sg[i]=j;
break;
}
}
scanf("%d",&t);
for (j=1;j<=t;j++)
{
memset(v,0,sizeof(v));
scanf("%d",&n);
nr=0;
for (i=1;i<=n;i++)
{
scanf("%d",&k);
// printf("%d ",k);
if (k==1)
nr++;
else
if (nr>0)
{
v[0]++;
v[v[0]]=nr;
nr=0;
// printf("%d ",v[v[0]]);
}
// printf("%d ",nr);
}
if (nr!=0)
{
v[0]++;
v[v[0]]=nr;
}
// printf("\n");
rez=0;
for (i=1;i<=v[0];i++)
{
// printf("%d ",v[i]);
if (v[i]<72)
s=sg[v[i]];
else
s=sg[(v[i]-72)%12+72];
rez^=s;
}
// printf("\n");
if (rez==0)
printf("Fumeanu\n");
else
printf("Nargy\n");
}
return 0;
}