Pagini recente » Cod sursa (job #924496) | Cod sursa (job #2726297) | Cod sursa (job #3228156) | Cod sursa (job #2474215) | Cod sursa (job #614695)
Cod sursa(job #614695)
Program permutari_n;
type stiva=array[0..15] of byte;
var f:text;
n:byte;
st:stiva;
Function succesor(var st:stiva;k:integer):boolean;
begin
if st[k]<n then begin
st[k]:=st[k]+1;
succesor:=true;
end
else succesor:=false;
end;
Function valid(var st:stiva;k:integer):boolean;
var i:integer;
ev:boolean;
begin
ev:=true;
for i:=1 to k-1 do if st[k]=st[i] then ev:=false;
valid:=ev;
end;
Procedure back(k:byte);
var j:byte;
begin
if k=n+1 then begin
for j:=1 to n do write(f,st[j],' ');
writeln(f);
end
else begin
st[k]:=0;
while succesor(st,k) do if valid(st,k) then back(k+1);
end;
end;
begin
assign(f,'permutari.in'); reset(f); read(f,n); close(f);
assign(f,'permutari.out'); rewrite(f);
back(1);
close(f);
end.