Cod sursa(job #41947)

Utilizator robbyRobertino robert robby Data 28 martie 2007 18:40:23
Problema Bowling Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <stdio.h>
#define nmax 500//01
long a[nmax],b[12][nmax],nr;

int xor(int i,int nr)
{
  int x,j;
  x=b[i][1];
  for (j=2;j<=nr;j++)
	x=x^b[i][j];
  return x;
}

FILE *f,*g;
int main()
{
  long n,i,j,t,ok,cas,x,y;
  f=fopen("bowling.in","rt");
  g=fopen("bowling.out","wt");
  fscanf(f,"%ld\n",&t);
  for (i=1;i<=t;i++)
	{
	  nr=0;
	  fscanf(f,"%ld",&n);
	  ok=1;
	  for (j=1;j<=n;j++)
		{
		  fscanf(f,"%ld",&a[j]);
		  if (a[j]==1&&ok)
			{
			  nr++;
			  ok=0;
			}
		   else
		  if (a[j]==0)
			ok=1;
		  if (!ok)
			b[i][nr]++;
		}
	  cas=xor(i,nr);

	  if (cas==0)
		fprintf(g,"Fumeanu\n");
	   else
	  {

	  ok=1;
	  for (j=1;j<=nr;j++)
		{
		  x=b[i][j];
		  while (xor(i,nr)!=0)
			b[i][j]--;
		  y=x-b[i][j];
		  if (y%3!=0)
			{
			  ok=0;
			  break;
			}
		  b[i][j]=x;
		}
	  ok=ok%2;
	  if (!ok)
		fprintf(g,"Nargy\n");
	   else
		fprintf(g,"Fumeanu\n");
	  }
	}

  fclose(f);
  fclose(g);
  return 0;
}