Cod sursa(job #42749)

Utilizator andrei_infoMirestean Andrei andrei_info Data 29 martie 2007 14:48:34
Problema Bowling Scor 100
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.36 kb
//infoarena bowling teoria jocurilor

const sg : array[0..11] of byte= ( 4,1,2,8,1,4,7,2,1,8,2,7);

var ex : array[0..71] of byte;
    n,rez,t: longint;

procedure init;
var i:integer;
begin
for i:=0 to 71 do ex[i]:=250;
ex[0]:=0; ex[3]:=3; ex[6]:=3; ex[9]:=4; ex[11]:=6;
ex[15]:=7; ex[18]:=3; ex[21]:=4; ex[22]:=6;
ex[28]:=5; ex[30]:=7; ex[39]:=3; ex[57]:=4;
ex[70]:=6;
end;

function valsg(x:longint):integer;
begin
if x >= 72 then
        valsg:=sg[x mod 12]
else
if (x < 72) and ( ex[x] = 250) then
        valsg:=sg[x mod 12]
else    valsg:=ex[x];
end;

procedure citire;
var i,j,l:longint;
    f:text;
    x:integer;
    k:boolean;
begin
assign(f,'bowling.in'); reset(f);
assign(output,'bowling.out'); rewrite(output);
readln(f,t);
for i:=1 to t do
        begin
        read(f,n);
        k:=false; l:=0; rez:=0;
        for j:=1 to n do
                begin
                read(f,x);
                if k and ( x=1) then inc(l);
                if (not k ) and (x =1 ) then begin k:=true; l:=1; end;
                if k and ( x = 0 ) then  begin rez:=rez xor valsg(l); k:=false; l:=0; end;
                end;
        if l <> 0 then rez:=rez xor valsg(l);
        if rez = 0 then
                writeln('Fumeanu')
        else    writeln('Nargy');
        end;
close(f); close(output);
end;

begin
init;
citire;
end.