Cod sursa(job #37846)

Utilizator alecmanAchim Ioan Alexandru alecman Data 25 martie 2007 12:48:54
Problema Bowling Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 4, Clasa a 10-a Marime 1.7 kb
/*
 *
 *
  info-arena 2.0 - preONI 2007 Finala - Bowling
 *
 *
 */

#include<stdio.h>

#define INPUT "bowling.in"
#define OUTPUT "bowling.out"

FILE *fin=fopen(INPUT, "r"),*fout=fopen(OUTPUT, "w");

int t,a[50001];
long n;

void citire();
void rezolvare();

int main()
{
  fscanf(fin, "%d", &t);
  for(int i=1;i<=t;++i)
  {
    citire();
    rezolvare();
  }
  fclose(fin);
  fclose(fout);
  return 0;
}

void citire()
{
  fscanf(fin, "%ld", &n);
  for(long i=1;i<=n;++i)
    fscanf(fin, "%d", &a[i]);
}

void rezolvare()
{
  a[0]=0;
  a[n+1]=0;
  int primopus=0,doiopus=0;
  long modifica=0,modificaoblig=0,modificaopt=0;
  long lungime=0;
  for(long i=1;i<=n;++i)
  {
    if(a[i]==1&&a[i-1]==1)
      ++lungime;
    else
    if(a[i]==1&&a[i-1]==0)
      lungime=1;
    if((a[i]==0&&a[i-1]==1)||(a[i]==1&&i==n))
    {
      if(lungime==1||lungime==2)
        ++modifica;
      else
      {
        if(lungime%3==0)
          primopus=1;
        else
          primopus=0;
        if((lungime-2)%3==0)
          doiopus=0;
        else
          doiopus=1;
        if(!primopus&&!doiopus)
          ++modificaoblig;
        else
          if(!primopus||!doiopus)
            ++modificaopt;
      }
    }
  }
  int castig=1;
  if(modifica%2==0&&modifica!=0)
    castig=2;
  else
    castig=1;
  if(modificaoblig%2!=0&&modificaoblig!=0)
  {
    if(castig==2)
      castig=1;
    else
      castig=2;
  }
  if(modificaoblig!=0&&modificaopt!=0)
  {
    if(modificaopt%2!=0)
    {
      if(castig==2)
        castig=1;
      else
        castig=2;
    }
  }
  if(castig==2)
    fprintf(fout, "Fumeanu\n");
  else
    fprintf(fout, "Nargy\n");
}