Cod sursa(job #255403)

Utilizator valytgjiu91stancu vlad valytgjiu91 Data 9 februarie 2009 17:51:51
Problema Planeta Scor 0
Compilator fpc Status done
Runda Arhiva de probleme Marime 0.87 kb
    var v:array[0..40] of int64;
        a:array[1..40] of longint;
        f,g:text;
        n,k:int64;
        i,j:longint;

    procedure umple(st,dr,p,nr:int64);
    var i,vf,n,x,y:int64;
    begin
    n:=dr-st+1;
     for i:=1 to n do
      if v[i-1]*v[n-i]>=nr then begin
       vf:=i;
      break;
      end
     else
      nr:=nr-v[i-1]*v[n-i];
   if (st<=dr) and (n<>0) then begin
    a[st]:=vf+p-1;
     x:=(nr-1) div v[n-i]+1;
     y:=nr-(x-1)*v[n-i];
      umple(st+1,st+vf-1,p,x);
     umple(st+vf,dr,p+vf,y);
     end;
    end;

  begin
    assign(f,'planeta.in'); reset(f);
    assign(g,'planeta.out'); rewrite(g);
    read(f,n,k);
    v[0]:=1; v[1]:=1;
    for i:=2 to n do
     for j:=1 to i do
     v[i]:=v[i]+v[j-1]*v[i-j];
    umple(1,n,1,k);
    for i:=1 to n-1 do
    write(g,a[i],' ');
    writeln(g,a[n]);
    close(g);
  end.