Cod sursa(job #252192)

Utilizator MihaiBunBunget Mihai MihaiBun Data 3 februarie 2009 23:29:26
Problema Lista lui Andrei Scor 15
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.05 kb
program lista;
var f:text;
    as,ev:boolean;
    st:array[1..1000] of 0..26;
    mat:array[1..26,1..26] of 0..1;
    n,m,i,j:integer;
    nr:longint;
    a:string[3];
begin
  assign(f,'nrcuv.in');
  reset(f);
  readln(f,n,m);
  for i:=1 to m do
    begin
       readln(f,a);
       mat[ord(a[1])-96,ord(a[3])-96]:=1;
       mat[ord(a[3])-96,ord(a[1])-96]:=1;
    end;
  close(f);
  assign(f,'nrcuv.out');
  rewrite(f);
  j:=1;
  st[j]:=0;
  while j>0 do
  begin
    repeat
      if st[j]<26 then begin
                           st[j]:=st[j]+1;
                           as:=true
                        end
                   else as:=false;
      if as then if mat[st[j],st[j-1]]=1 then ev:=false
                                         else ev:=true
    until (not as) or (as and ev);
    if as then if j=n then nr:=(nr+1)mod 104659
                      else begin
                            j:=j+1;
                            st[j]:=0
                           end
          else j:=j-1
  end;
 writeln(f,nr);
 close(f);
end.