Cod sursa(job #559948)

Utilizator aliveLechintan Adrian alive Data 18 martie 2011 11:05:00
Problema Combinari Scor 80
Compilator fpc Status done
Runda Arhiva educationala Marime 0.77 kb
program combinari;
var
 v:array[1..20] of integer;
 n,k,p:shortint;
 f,g:text;

procedure tipar(x:integer);
var i:integer;
begin
 for i:=1 to x do
  write(g,v[i],' ');
 writeln(g);
end;

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

begin
 assign(f,'combinari.in');
 assign(g,'combinari.out');
 reset(f); readln(f,n,k);
 close(f); rewrite(g);

 p:=1;
 while p>0 do
 begin
  v[p]:=v[p]+1;
  if valid(p) then
  if v[p]>n then begin
                 v[p]:=0;
                 p:=p-1;
                 end
  else if p<k then p:=p+1
  else if p=k then tipar(p);
 end;
 close(g);
end.