Cod sursa(job #18466)

Utilizator VmanDuta Vlad Vman Data 18 februarie 2007 12:18:57
Problema Culori Scor 16
Compilator fpc Status done
Runda preONI 2007, Runda 2, Clasele 11-12 Marime 0.94 kb
program culori;
type stiva=array[1..128]of byte;
var n,i:integer;
    st:stiva;
    t:array[1..512]of integer;
    f:text;
    nr:integer;

procedure go(st:stiva;deep:shortint;noduri,k:byte);
begin
if (deep>2*n-k)or(noduri>n)or(noduri+2*n-k<n) then exit
        else if (k=2*n-1)and(deep=0)and(noduri=n)and(st[1]=t[1]) then begin
                                        inc(nr);
                                        if nr>=9901 then dec(nr,9901);
                                        exit;
                                        end
                                        else if deep=-1 then exit;
{avanseaza}
st[deep+1]:=t[k];
go(st,deep+1,noduri+1,k+1);
{inapoi}
if (deep>0)and(st[deep]=t[k+1]) then go(st,deep-1,noduri,k+1);
end;

begin
assign(f,'culori.in');reset(f);
readln(f,n);
for i:=1 to 2*n-1 do
        read(f,t[i]);
close(f);
go(st,0,1,1);
assign(f,'culori.out');rewrite(f);
write(f,nr);
close(f);
end.