Cod sursa(job #145708)

Utilizator valytgjiu91stancu vlad valytgjiu91 Data 29 februarie 2008 11:15:06
Problema Dusman Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.98 kb
const nmax=1000;
type stiva=array[1..nmax] of integer;
var f,g:text;
    a:array[1..nmax,1..nmax] of 0..1;
    j,k,x,y,l,m,n,i,o:longint;
    ap:array[1..nmax] of 0..1;
    st:stiva;
    ev,as:boolean;
begin
     assign(f,'dusman.in');reset(f);
     readln(f,n,l,m);
     for i:=1 to m do begin
         readln(f,x,y);
         a[x,y]:=1;
         a[y,x]:=1;
     end;
     close(f);
     assign(f,'dusman1.out');rewrite(f);
     k:=1; st[k]:=0;
     while k>0 do
     begin
          repeat
                as:=False;
                if st[k]<N then begin
                      as:=True;
                      st[k]:=st[k]+1;
                   end;
                if as then begin
                           ev:=True;
                           for j:=1 to k-1 do
                               if st[k]=st[j] then begin
                                                        ev:=false;
                                                        break;
                                                   end;
                           if (k>1) and (a[st[k],st[k-1]]=1) then ev:=false;
                   end;
          until (not as) Or (as and ev);
          if as then
                       if k=N then begin
                                          o:=o+1;
                                          if o=L then begin
                                          For i:=1 To N-1 do
                                               write(f,st[i],' ');
                                           writeln(f,st[N]);
                                           close(f);
                                           halt;
                                           end;
                                   end
                              else begin
                                        k:=k+1;
                                        st[k]:=0;
                                   end
          else begin
               k:=k-1;
          end;
     end;
     close(f);
End.