Cod sursa(job #35483)

Utilizator CezarMocanCezar Mocan CezarMocan Data 22 martie 2007 09:25:04
Problema Lista lui Andrei Scor 60
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.02 kb
var v:array[1..2000,1..27]of longint;
    c1,c2:array[1..2000]of integer;
    i,j,s,k,n,m,nr:longint;
    c:char;

function gasit(a,b:longint):boolean;
var i:longint;
begin
gasit:=false;
for i:=1 to m do
        if ((a=c1[i])and(b=c2[i]))or((b=c1[i])and(a=c2[i]))
                then begin
                gasit:=true;
                exit;
                end;
end;

begin
assign(input,'nrcuv.in');reset(input);
assign(output,'nrcuv.out');rewrite(output);
readln(n,m);
for i:=1 to m do
        begin
        read(c);
        c1[i]:=ord(c)-ord('a')+1;
        read(c);
        read(c);
        c2[i]:=ord(c)-ord('a')+1;
        readln;
        end;
for i:=1 to 27 do
        v[1,i]:=1;
for i:=2 to n do
        for j:=1 to 26 do
              for k:=1 to 26 do
                begin
                if (not gasit(j,k)) then
                        v[i,j]:=(v[i,j]+v[i-1,k])mod 104659;
                end;
for i:=1 to 26 do
        s:=(s+v[n,i])mod 104659;
writeln(s);
close(input);close(output);
end.