Cod sursa(job #548521)

Utilizator gicu_01porcescu gicu gicu_01 Data 7 martie 2011 15:18:19
Problema Generare de permutari Scor 20
Compilator fpc Status done
Runda Arhiva educationala Marime 0.85 kb
var a:array[1..100]of byte;
    b:array[1..100000,1..10]of byte;
    n:byte;  k:integer;

procedure init;
var i:byte; f:text;
begin
 assign(f,'permutari.in');
 reset(f);
 readln(f,n);
 close(f);
 for i:=1 to n do a[i]:=i;
end;

procedure afis;
var i:integer;j:byte; f:text;
begin
 assign(f,'permutari.out');
 rewrite(f);
 for i:=1 to k do
  begin
   for j:=1 to n do write(f,a[i]);
   writeln(f)
  end;
 close(f);
end;

procedure linie(k:integer);
var i:byte;
begin
 for i:=1 to n do b[k,i]:=a[i];
end;

procedure sw(var a,b:byte);
var t:byte;
begin
 t:=a;a:=b;b:=t;
end;

procedure perm(p:byte);
var i:byte;
begin
 if p>n then begin inc(k); linie(k); end else
  for i:=p to n do
   begin
    sw(a[i],a[p]);
    perm(p+1);
    sw(a[i],a[p]);
   end;
end;


begin
 init;
 k:=0;
 perm(1);
 afis;
end.