Cod sursa(job #115400)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 16 decembrie 2007 12:32:07
Problema Dusman Scor 0
Compilator fpc Status done
Runda preONI 2008, Runda 2, Clasele 5-8 Marime 1.21 kb
Program dusman;
Var f,ff:text;
    n,kp,m,factorial,pp,fl,l:int64;
    i,j,k,k1:longint;
    p,a,b:array[1..10000] of longint;
Begin
 assign(f,'dusman.in');
 reset(f);
 assign(ff,'dusman.out');
 rewrite(ff);
 readln(f,n,kp,m);
 for i:=1 to m do readln(f,a[i],b[i]);
 for i:=2 to n do p[i]:=i;
 p[1]:=1;
 fl:=1;
 for j:=1 to n-1 do for k:=1 to m do if ((p[j]=a[k])and(p[j+1]=b[k]))or((p[j]=b[k])and(p[j+1]=a[k])) then fl:=0;
 if fl=1 then inc(l);
 if (fl=1)and(kp=l) then
   begin
    for j:=1 to n do Write(ff,p[j],' ');
    Writeln(ff);
    close(f);
    close(ff);
    halt;
   end;
 i:=1;
 repeat
  inc(i);
  for k:=n-1 downto 1 do if p[k]<p[k+1] then break;
  for k1:=n downto 1 do if p[k1]>p[k] then break;
  pp:=p[k];
  p[k]:=p[k1];
  p[k1]:=pp;
  for j:=k+1 to (n+k+1) div 2 do
     begin
      pp:=p[j];
      p[j]:=p[n-(j-k)+1];
      p[n-(j-k)+1]:=pp;
     end;
  fl:=1;
  for j:=1 to n-1 do for k:=1 to m do if ((p[j]=a[k])and(p[j+1]=b[k]))or((p[j]=b[k])and(p[j+1]=a[k])) then fl:=0;
  if fl=1 then inc(l);
  if (fl=1)and(kp=l) then
    begin
     for j:=1 to n do Write(ff,p[j],' ');
     Writeln(ff);
     close(f);
     close(ff);
     halt;
    end;
 until(1>2);
End.