Cod sursa(job #156628)

Utilizator claudiu_syclaudiu claudiu_sy Data 12 martie 2008 17:48:20
Problema Combinari Scor 80
Compilator fpc Status done
Runda Arhiva educationala Marime 1.26 kb
var x:array[1..18] of integer;
    n,l:integer;
    f,g:text;
procedure init(k:integer);
   begin
   x[k]:=0;
   end;
function exista(k:integer):boolean;
   begin
   exista:=(x[k]<n);
   end;
function cont(k:integer):boolean;
   var i,s:integer;
   begin
   cont:=true;
   for i:=1 to k-1 do
       if x[i]>=x[k] then
          cont:=false;
   end;
function solutie(k:integer):boolean;
   begin
   solutie:=(k=l);
   end;
procedure tipar(k:integer);
   var i:integer;
   begin
   for i:=1 to k do
           write(g,x[i],' ');
       writeln(g);
   end;
procedure bkt(k:integer);
 begin
 k:=1; init(k);
 while k>0 do
      if exista(k) then begin
                        x[k]:=x[k]+1;
                        if cont(k) then if solutie(k) then tipar(k)
                                                       else begin
                                                            k:=k+1;
                                                            init(k);
                                                            end;
                        end
                    else k:=k-1;
  end;
{program principal}
begin
assign(f,'combinari.in');
assign(g,'combinari.out');
reset(f);
rewrite(g);
readln(f,n,l);
bkt(n);
close(f);
close(g);
end.