Pagini recente » Cod sursa (job #1213070) | Cod sursa (job #2135555) | Cod sursa (job #760286) | Cod sursa (job #1466264) | Cod sursa (job #603877)
Cod sursa(job #603877)
Program Generarea_submultimilor_backtracking;
uses crt;
type stiva=array[1..100]of byte;
var st:stiva;
as,ev:boolean; {as=are_succesor; ev=este_validat}
i,j,k,n:integer;
f:text;
procedure tipareste_solutia;
var it:integer;
begin
for it:=1 to k do write(f,st[it],' ');
writeln(f);
end;
begin
clrscr;
assign(f,'submultimi.in'); reset(f); readln(f,n); close(f);
assign(f,'submultimi.out'); rewrite(f);
k:=1; st[k]:=0;
while (k>0) do
begin
Repeat
if st[k]<n then
begin
st[k]:=st[k]+1;
as:=true;
end
else as:=false;
if as then
begin
ev:=true;
for i:=1 to k-1 do if st[i]>=st[k] then ev:=false;
end;
until not as or (as and ev);
if as then
begin
tipareste_solutia;
k:=k+1;
st[k]:=0;
end
else
k:=k-1;
end;
close(f);
end.