Cod sursa(job #115421)

Utilizator antoanelaAntoanela Siminiuc antoanela Data 16 decembrie 2007 12:36:24
Problema Dusman Scor 0
Compilator fpc Status done
Runda preONI 2008, Runda 2, Clasele 5-8 Marime 1.06 kb
program generare_permutari;
var f,g:text;
    v:array[1..1000]of 1..1000;
    a,b:array[1..3000]of 1..1000;
    n,i,j,aux,st,dr,k,m,ok,cont:longint;
begin
assign(f,'dusman.in');
assign(g,'dusman.out');
reset(f);
rewrite(g);
read(f,n,k,m);
for i:=1 to m do read(f,a[i],b[i]);
for i:=1 to n do v[i]:=i;
while true do
  begin
    ok:=0;
    for i:=1 to m do
      begin
        for j:=1 to n do
          if (v[j]=a[i])and(v[j+1]=b[i])then ok:=1 else
          if (v[j]=b[i])and(v[j+1]=a[i])then ok:=1;
      end;
    if (ok=0)then cont:=cont+1;
    if (cont=k)then break;
    i:=n-1;
    while (i>0)and(v[i]>v[i+1]) do i:=i-1;

    if (i=0)then break
       else
      begin
        j:=n;
        while v[j]<v[i] do dec(j);
        aux:=v[i];
        v[i]:=v[j];
        v[j]:=aux;
        st:=i+1; dr:=n;
        while st<dr do
          begin
            aux:=v[st];
            v[st]:=v[dr];
            v[dr]:=aux;
            inc(st); dec(dr);
          end;
      end;
  end;
for i:=1 to n do write(g,v[i],' ');
close(f);
close(g);
end.