Pagini recente » Cod sursa (job #2090856) | Cod sursa (job #774047) | Istoria paginii runda/ice_2 | Cod sursa (job #2449068) | Cod sursa (job #420179)
Cod sursa(job #420179)
type vector=array[1..25] of integer;
var st:vector;
n,k,p:integer;
f:text;
procedure init(k:integer);
begin
st[k]:=0;
end;
procedure afis;
var i:integer;
begin
for i:=1 to n-1 do write(f, st[i],' ');
writeln(f);
end;
function succesor(k:integer):boolean;
begin
if st[k]<n then
begin
Inc(st[k]); succesor:=true;
end
else succesor:=false;
end;
function solutie(k:integer):boolean;
begin
solutie:=(k=p+1);
end;
function valid(k:integer):boolean;
var i:integer;
begin
if (k>1) and (st[k] <= st[k-1]) then valid:=false
else valid:=true;
end;
procedure back(k:integer);
begin
if solutie(k) then afis
else
begin
init(k);
while succesor(k) do
if valid(k) then
back(k+1);
end;
end;
begin
assign(f,'combinari.in'); reset(f);
readln(f,n,p); close(f);
assign(f,'combinari.out'); rewrite(f);
back(1); close(f);
end.