Cod sursa(job #603877)

Utilizator ion824Ion Ureche ion824 Data 18 iulie 2011 23:24:32
Problema Submultimi Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.16 kb
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.