Cod sursa(job #725838)

Utilizator ZancrowAugustin Zancrow Data 26 martie 2012 22:08:00
Problema Combinari Scor 40
Compilator fpc Status done
Runda Arhiva educationala Marime 1.62 kb
type  tablou=array[1..300] of string;
      ks=array[1..100] of integer;                                                                                                                                                                                         type vector=array[1..100]of integer;
var a:ks;
     n,k,z:integer;
     t:tablou;
     f,h:text;

procedure afis;
var i,s,cod:integer;
    c:string;
begin
s:=0;
for i:=1 to n do if a[i]=1 then s:=s+1;
  if s=k then begin
              inc(z);
              for i:=n downto 1 do if a[i]=1 then begin
              str(n+1-i,c);
              t[z]:=t[z]+c+' ';
              end;
  end;
  end;

procedure bin(p:integer);
var i:integer;
begin
  if p>n then afis
  else
  begin
    a[p]:=0;
    bin(p+1);
    a[p]:=1;
    bin(p+1);
    end;
  end;

procedure ordonare ;
  var b:boolean;
    i:integer;
    aux:string;
  begin
    repeat
    b:=false;
    for i:=1 to z-1 do
                   if t[i]>t[i+1] then begin
                                                 aux:=t[i];
                                                 t[i]:=t[i+1];
                                                 t[i+1]:=aux;
                                                 b:=true;
                                                 end;
                                                 until not b;
end;

procedure afisare;
var i:integer;
begin
for i:=1 to z do writeln(h,t[i]);
end;

begin
assign(f,'combinari.in');
reset(f);
readln(f,n,k);
z:=0;
  bin(1);
  assign(h,'combinari.out');
  rewrite(h);
  ordonare;
  afisare;
  close(f);
  close(h);
end.