Cod sursa(job #720258)

Utilizator elffikkVasile Ermicioi elffikk Data 22 martie 2012 15:08:13
Problema Generare de permutari Scor 20
Compilator fpc Status done
Runda Arhiva educationala Marime 0.84 kb
var a:array[1..20] of integer;
n:integer;
f1,f2:text;

procedure sw(var x,y:integer);
var t:integer;
begin
  t:=x;
  x:=y;
  y:=t;
end;

procedure init;
var i:integer;
begin
  for i:=1 to n do a[i]:=i;
end;

procedure afis;
var i:integer;
begin
  for i:=1 to n do write(f2, a[i],' ');writeln(f2);
end;

procedure sort(k:integer);
var i,j:integer;
begin
  for j:=k to n do
  for i:=k to n-1 do
    if a[i]> a[i+1] then sw(a[i],a[i+1]);

end;


procedure perm(k:integer);
var i:integer;
begin
  if k>=n then afis
  else
  begin
  sort(k);
  for i:=k to n do
  begin
    sw(a[k],a[i]);
    perm(k+1);
    sw(a[k],a[i]);
  end;
  end
end;
begin
  assign(f1, 'permutari.in');
  reset(f1);
  read(f1,n);
  close(f1);
  assign(f2, 'permutari.out');
  rewrite(f2);
  init;
  perm(1);
  close(f2);
  
end.