Pagini recente » Cod sursa (job #1662579) | Cod sursa (job #309951) | Cod sursa (job #2615638) | Cod sursa (job #975426) | Cod sursa (job #414430)
Cod sursa(job #414430)
type vector=array[1..25] of integer;
var st:vector;
n,k:integer;
f:text;
procedure init(k:integer);
begin
st[k]:=0;
end;
procedure afis;
var i:integer;
begin
for i:=1 to n do write(f, st[i],' ');
writeln(f);
end;
function succesor(k:integer):boolean;
begin
if st[k]<n then
begin
Inc(st[k]); succesor:=true;
end
else succesor:=false;
end;
function solutie(k:integer):boolean;
begin
solutie:=(k=n+1);
end;
function valid(k:integer):boolean;
var i:integer;
begin
valid:=true;
for i:=1 to n-1 do
if st[k]=st[i] then valid:=false;
end;
procedure back(k:integer);
begin
if solutie(k) then afis
else
begin
init(k);
while succesor(k) do
if valid(k) then
back(k+1);
end;
end;
begin
assign(f,'permutari.in'); reset(f);
readln(f, n);
close(f);
assign(f,'permutari.out'); rewrite(f);
back(1);
close(f);
end.