Cod sursa(job #39295)

Utilizator andrewgPestele cel Mare andrewg Data 26 martie 2007 16:49:14
Problema Bowling Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 2.22 kb
var fi,fo:text;
    n,m,t,i,j,nr,sol,p:longint;
    c:array[0..12]of integer;
    ok:boolean;

procedure get;
begin
   if nr=0 then exit;
   if nr=3 then exit;
   if nr=6 then
   begin
      nr:=3;
      exit;
   end;
   if nr=9 then
   begin
      nr:=4;
      exit;
   end;
   if nr=11 then
   begin
      nr:=6;
      exit;
   end;
   if nr=15 then
   begin
      nr:=7;
      exit;
   end;
   if nr=18 then
   begin
      nr:=3;
      exit;
   end;
   if nr=21 then
   begin
      nr:=4;
      exit;
   end;
   if nr=22 then
   begin
      nr:=6;
      exit;
   end;
   if nr=29 then
   begin
      nr:=5;
      exit;
   end;
   if nr=34 then
   begin
      nr:=6;
      exit;
   end;
   if nr=39 then
   begin
      nr:=3;
      exit;
   end;
   if nr=57 then
   begin
      nr:=4;
      exit;
   end;
   if nr=70 then
   begin
      nr:=6;
      exit;
   end;
   nr:=nr mod 12;
   nr:=c[nr];
end;

procedure make;
begin
   sol:=nr;
end;

procedure add;
begin
   sol:=sol xor nr;
end;

procedure readdata;
begin
   c[0]:=4;
   c[1]:=1;
   c[2]:=2;
   c[3]:=8;
   c[4]:=1;
   c[5]:=4;
   c[6]:=7;
   c[7]:=2;
   c[8]:=1;
   c[9]:=8;
   c[10]:=2;
   c[11]:=7;
   assign(fi,'bowling.in');
   reset(fi);
   assign(fo,'bowling.out');
   rewrite(fo);
   readln(fi,t);
   for i:=1 to t do
   begin
      read(fi,n);
      nr:=0;
      ok:=false;
      for j:=1 to n do
      begin
         read(fi,p);
         if p=1 then inc(nr)
                else
         begin
            get;
            if ok=false then
            begin
               make;
            end
               else
            begin
               add;
            end;
            ok:=true;
            nr:=0;
         end;
      end;
      p:=0;
      if p=1 then inc(nr)
             else
      begin
         get;
         if ok=false then
         begin
            make;
         end
            else
         begin
            add;
         end;
         ok:=true;
         nr:=0;
      end;
      if sol=0 then writeln(fo,'Fumeanu')
               else writeln(fo,'Nargy');
   end;
   close(fo);
   close(fi);
end;

begin
    readdata;
end.