Pagini recente » Cod sursa (job #979582) | Cod sursa (job #2336563) | Cod sursa (job #846385) | Cod sursa (job #1919702) | Cod sursa (job #37527)
Cod sursa(job #37527)
#include <stdio.h>
#include <string.h>
#define NMAX 50000
#define SGMAX 1500
FILE *f = fopen("bowling.in","rt"), *g = fopen("bowling.out","wt");
long int SG[NMAX],n,i,j,k,hash[NMAX],v[NMAX],l,x,t;
int main()
{
SG[1]=1;
SG[0]=0;
for (i=2;i<=SGMAX;i++)
{
k=i-1;
for (j=0;j<=SGMAX;j++) hash[j]=0;
for (j=0;j<=k/2+1;j++)
hash[ SG[j]^SG[k-j] ]=1;
k=i-2;
for (j=0;j<=k/2+1;j++)
hash[ SG[j]^SG[k-j] ]=1;
j=0;
while (hash[j])
j++;
SG[i]=j;
}
fscanf(f,"%ld",&t);
long int i;
for (i=1;i<=t;i++)
{
fscanf(f,"%ld",&n);
x=0;
for (j=1;j<=n;j++)
{fscanf(f,"%ld",&k);
if (k) l++;
else if (l>0)
{v[++x]=l;
l=0;}
}
if (l>0) {v[++x]=l;l=0;}
k=0;
for (j=1;j<=x;j++)
k=k^SG[v[j]];
if (k) fprintf(g,"Nargy\n");
else fprintf(g,"Fumeanu\n");
}
fclose(f);
fclose(g);
return 0;
}