Cod sursa(job #729965)
Program permut_arena;
type stiva=array[0..10] of byte;
var fi,fo : text; n : byte; st:stiva;
Procedure tipar;
var i:byte;
begin
for i:=1 to n do write(fo,st[i],' '); writeln(fo);
end;
Function valid(k:byte):boolean;
var i:byte;
begin valid:=true;
for i:=1 to k-1 do if st[i]=st[k] then valid:=false;
end;
Procedure back(k:byte);
var i:byte;
begin
if k=n+1 then tipar
else for i:=1 to n do begin
st[k]:=i;
if valid(k) then back(k+1);
end;
end;
begin
assign(fi,'permutari.in'); reset(fi); read(fi,n);
assign(fo,'permutari.out'); rewrite(fo); back(1);
close(fi); close(fo);
end.