Cod sursa(job #264988)

Utilizator DalaDosDalalau Alexandru DalaDos Data 23 februarie 2009 08:56:45
Problema Combinari Scor 80
Compilator fpc Status done
Runda Arhiva educationala Marime 1.01 kb
var f,g:text;
    n,k:byte;
    sol:array[1..20]of byte;

procedure init(vf:byte);
begin
        sol[vf]:=0;
end;

function succ(vf:byte):boolean;
begin
   if sol[vf]<n then
   begin
      inc(sol[vf]);
      succ:=true;
   end else
       succ:=false;
end;

function valid(vf:byte):boolean;
var i:byte;
begin
     valid:=true;
     for i:=1 to vf-1 do
         if (sol[i]=sol[vf])or(sol[i]>sol[vf]) then valid:=false;
end;

function ok(vf:byte):boolean;
begin
   if vf=k+1 then ok:=true
            else ok:=false;
end;

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

procedure comb(vf:byte);
begin
   if ok(vf) then tipar
      else
      begin
         init(vf);
         while succ(vf) do
            if valid(vf) then comb(vf+1);

      end;
end;
begin
     assign(f,'combinari.in');
     assign(g,'combinari.out');
     reset(f);
     rewrite(g);
     read(f,n,k);
     comb(1);
     close(f);
     close(g);
end.