Pagini recente » Cod sursa (job #449158) | Cod sursa (job #691913) | Cod sursa (job #2906007) | Cod sursa (job #2304460) | Cod sursa (job #272363)
Cod sursa(job #272363)
var k,p,n : integer;
st : array[1..100] of integer;
valid,succesor : boolean;
fin,fout:text;
procedure aresuccesor;
begin
succesor := false;
if st[k] < n then begin
st[k] := st[k] +1;
succesor := true;
end;
end;
procedure validare;
var i:integer;
begin
valid := true;
for i := 1 to k-1 do begin
if st[i] = st[k] then
valid := false;
end;
if k > 1 then
if st[k] < st[k-1] then valid := false;
end;
procedure afisare;
var i: integer;
begin
for i := 1 to p do begin
write(fout,st[i],' ');
end;
writeln(fout);
end;
begin
assign(fin,'combinari.in');
reset(fin);
read(fin,n,p);
close(fin);
assign(fout,'combinari.out');
rewrite(fout);
k := 1;
st[k] := 0;
while k > 0 do begin
succesor := true;
valid := false;
while succesor and (not valid) do begin
aresuccesor;
if succesor then validare;
end;
if valid then
if k = p then afisare
else begin
k:= k+1;
{st[k] := st[k-1];}
st[k] := 0;
end
else begin
k := k-1;
end;
end;
close(Fout);
end.