Cod sursa(job #209180)

Utilizator FllorynMitu Florin Danut Flloryn Data 21 septembrie 2008 11:27:29
Problema Combinari Scor 80
Compilator fpc Status done
Runda Arhiva educationala Marime 1 kb
program pascal;
var f,g:text;
    i,k,p,n:integer;
    sol:array[1..100] of integer;

 function count(k:integer):boolean;
 begin
   count:=true;
   for i:=1 to k-1 do
    if (sol[i]=sol[k]) or (sol[i]>=sol[i+1]) then
              begin
               count:=false;
               break;
              end;
 end;

 procedure tipar;
 begin
  for i:=1 to p do write(g,sol[i],' ');
  writeln(g);
 end;


 procedure bkt;
 begin
  K:=p;
  while k>0 do
   if sol[k]<n then
         begin
           sol[k]:=sol[k]+1;
           if count(k) then
            if k=p  then tipar
                    else
                     begin
                      k:=k+1;
                      sol[k]:=0;
                     end;
         end
          else k:=k-1;
 end;

begin
assign(f,'combinari.in'); reset(f);
assign(g,'combinari.out'); rewrite(g);
 read(f,n,p);
 for i:=1 to p do
  begin
    sol[i]:=i;
    write(g,sol[i],' ');
  end;
 writeln(g);
 bkt;
close(f);
close(g);
end.