Cod sursa(job #340882)

Utilizator Andrei200Andrei200 Andrei200 Data 16 august 2009 20:45:19
Problema Bowling Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <cstdio>
#include <cstring>

#define file_in "bowling.in"
#define file_out "bowling.out"

int i,viz[500],grundy[500],j,k,K,T,sum,X,N;

int main()
{
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	K=3;
	
	 for (i=0;i<K;++i)   
                 grundy[i]=0;   
  
            for (i=K;i<=500;++i)   
            {   
                 memset(viz,0,sizeof(viz));   
  
                 for (j=1;j<=i-K+1;++j)   
                 {   
                     k=grundy[j-1]^grundy[i-(j+K-1)];   
                     viz[k]=1;   
                 }   
                 for (k=0;viz[k];++k);   
                     grundy[i]=k;   
            }   


	/*for (i=1;i<=500;++i)
		 printf("%d ", grundy[i]);*/
			
	scanf("%d\n", &T);

    while(T--)
	{
		scanf("%d", &N);
	
		sum=0;
		for (i=1;i<=N;++i)
		{
			scanf("%d", &X);
            if (X&1)
			sum=sum^grundy[i];
		}

         //printf("%d\n", sum);		
		if (sum&1)
			printf("Fumeanu\n");
		else
			printf("Nargy\n");
	}
		
	fclose(stdin);
	fclose(stdout);
	
	return 0;
}