Cod sursa(job #201218)

Utilizator devilkindSavin Tiberiu devilkind Data 29 iulie 2008 18:09:50
Problema Bowling Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>
#include <string>

int SPG[1028];
int h[1028];
int ret;

void freaca(int &l)
{
	if (l>72) l=72+(l-72)%12;
	ret=ret^SPG[l];
	l=0;
}

int main()
{
	freopen("bowling.in","r",stdin);
	freopen("bowling.out","w",stdout);

	int n,i,j,x,y,l;

	SPG[0]=0;
	SPG[1]=1;
	SPG[2]=2;

	for (i=3;i<=1000;i++)
	{
	
		memset(h,0,sizeof(h));
		for (j=0;j<=i-1;j++)
		{
			x=j;y=i-j-1;
			h[ SPG[x]^SPG[y] ] = 1;
		}

		for (j=0;j<=i-2;j++)
		{
			x=j;y=i-j-2;
			h[ SPG[x]^SPG[y] ] = 1;
		}
		for (j=0;h[j];j++);
		SPG[i]=j;
	}

	int T;
	scanf("%d",&T);


	for (;T;T--)
	{
		scanf("%d",&n);

		l=0;
		ret=0;
		for (i=1;i<=n;i++)
		{
			scanf("%d",&x);
			
			if (x==1) l++;
			if ( (x==0)&&(l>0) ) freaca(l);
//			printf("%d ",l);
		}
		
		if (l) freaca(l);
//		printf("%d",ret);

		if (!ret) printf("Fumeanu\n");
			else printf("Nargy\n");
	}
	return 0;
}