Cod sursa(job #833889)

Utilizator adrianbadBadeaAdrian adrianbad Data 13 decembrie 2012 11:33:41
Problema Generare de permutari Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.91 kb
program permutari;
var a:array[1..1000] of longint;
    n,k,v,y:longint;
    f,q:text;
function valid(k:longint):boolean;
 var i:longint;
 begin
  valid:=true;
  for i:=1 to k-1 do
     if a[i]=a[k] then valid:=false;
 end;
procedure tipar(n:longint);
 var i:longint;
 begin
  for i:=1 to n do
    write(q,a[i],' ');
 end;
begin
 assign(f,'permutari.in');
 reset(f);
 assign(q,'permutari.out');
 rewrite(q);
 readln(f,n);
 k:=1;
 a[k]:=y;
 while k>0 do
  begin
     v:=0;
     while (a[k]<n)and(v=0) do
      begin
        a[k]:=a[k]+1;
        if valid(k)=true then v:=1;
      end;
     if v=1 then if k=n then begin tipar(n);
                                   writeln(q);
                             end
                        else begin k:=k+1;
                                   a[k]:=0;
                             end
            else k:=k-1;
  end;
 close(f);
 close(q);
end.