Pagini recente » Cod sursa (job #2601847) | Cod sursa (job #43720) | Cod sursa (job #1589673) | Cod sursa (job #160486) | Cod sursa (job #362438)
Cod sursa(job #362438)
var f,g:text;
st:array[1..100] of byte;
p,K,i,n:integer;
ev,as:boolean;
procedure succesor;
begin
if st[k]<n then
begin
as:=true;
st[k]:=st[k]+1;
end
else
as:=false;
end;
procedure valid;
begin
ev:=true;
for i:=1 to k-1 do
if (st[i]>=st[i+1]) then
ev:=false;
end;
procedure init;
begin
st[k]:=0;
end;
function solutie:boolean;
begin
solutie:=(p=k);
end;
procedure tipar;
begin
for i:=1 to p do
write(g,st[i],' ');
writeln(g);
end;
BEGIN
assign(f,'combinari.in');reset(f);
read(f,n,p);close(f);
assign(g,'combinari.out');rewrite(g);
k:=1;init;
while k>0 do
begin
repeat
succesor;
if as then valid
until (as and ev) or (not as);
if (as) and (ev) then
if solutie then
tipar
else
begin
k:=k+1;
init
end
else
k:=k-1;
end;
close(g);
END.