Cod sursa(job #871133)

Utilizator iu.ciocoiuIulian iu.ciocoiu Data 4 februarie 2013 15:07:26
Problema Combinari Scor 100
Compilator fpc Status done
Runda Arhiva educationala Marime 1.01 kb
program combinari;
type vector=array[1..18] of byte;
var x:vector;
    n,p,k:byte;
    f,g:text;

procedure init (i:byte);
begin x[i]:=0; end;

function valid (p:byte):boolean;
var i:byte;
begin
valid:=true;
i:=1;
while (i<=p-1) and (valid) do
   begin if (x[i]=x[p]) or (x[i]>=x[p]) then valid:=false;
         i:=i+1;
   end;
end;

procedure afis (p:byte);
var i:byte;
begin
for i:=1 to p do write (g,x[i],' ');
writeln (g);
end;

procedure back;
begin
p:=1;
while (p>0) do
   if (x[p]<n) then begin x[p]:=x[p]+1;
                          if (valid(p)) then if (p=k) then afis (p)
                                                      else begin p:=p+1;
                                                                 init(p);
                                                           end
                    end
               else p:=p-1;
end;
begin
assign (f,'combinari.in'); reset (f);
assign (g,'combinari.out'); rewrite (g);
read (f,n,k);
back;
close (f);
close (g);
end.