Cod sursa(job #154023)

Utilizator Clau2000GOREA CLAUDIU-CRISTIAN Clau2000 Data 10 martie 2008 21:19:36
Problema Combinari Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.02 kb
var f,g:text;
    n,k:byte;
    sol:array[0..18]of byte;

procedure init(vf:byte);
begin
        sol[vf]:=sol[vf-1];
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]) 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 perm(vf:byte);
begin
   if ok(vf) then tipar
      else
      begin
         init(vf);
         while succ(vf) do
            if valid(vf) then perm(vf+1);

      end;
end;

begin
     assign(f,'combinari.in');
     assign(g,'combinari.out');
     reset(f);
     rewrite(g);
     read(f,n,k);
     sol[0]:=0;
     perm(1);

     close(f);
     close(g);
end.