Pagini recente » Cod sursa (job #1085270) | Cod sursa (job #1044686) | Cod sursa (job #2213672) | Cod sursa (job #3183161) | Cod sursa (job #1600145)
var v:array[1..30] of integer;
n,p:integer;
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 solutie(k:integer):boolean;
begin
if k=p then solutie:=true
else solutie:=false;
end;
procedure afisare(k:integer);
var i:integer;
begin
for i:=1 to k do write(output,v[i],' ');
writeln(output);
end;
function lexicografic(k:integer):boolean;
var i:integer;
begin
lexicografic:=true;
for i:=2 to p do
if v[i]<v[i-1] then lexicografic:=false;
end;
procedure backtrack(k:integer);
var i:integer;
begin
for i:=1 to n do
begin
v[k]:=i;
if valid(k)=true then
begin
if (solutie(k)=true) and (lexicografic(k)) then afisare(k);
backtrack(k+1);
end;
end;
end;
Begin
assign(input,'combinari.in'); reset(input);
assign(output,'combinari.out'); rewrite(output);
readln(input,n,p);
backtrack(1);
close(input);
close(output);
end.