Cod sursa(job #362593)

Utilizator ladyLittle Lady lady Data 10 noiembrie 2009 11:30:45
Problema Generare de permutari Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 0.89 kb
var n:integer;
    v:array[1..10] of integer;

procedure init(k:integer);
begin
 v[k]:=0;
end;

function succ(k:integer):boolean;
begin
 if v[k]<n then begin
  inc(v[k]);
  succ:=true;
 end else succ:=false;
end;

function valid(k:integer):boolean;
var i:integer;
begin
 valid:=true;
  for i:=1 to k-1 do
   if v[i]=v[k] then
    valid:=false;
end;

function sol(k:integer):boolean;
begin
 sol:=(k=n+1);
end;

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

procedure back(k:integer);
begin
 if sol(k) then tip
           else begin
                 init(k);
                 while succ(k) do
                  if valid(k) then back(k+1);
                end;
end;

begin
assign(input,'permutari.in');reset(input);
assign(output,'permutari.out');rewrite(output);
 readln(n);
 back(1);
close(input);close(output);
end.