Pagini recente » Cod sursa (job #2051605) | Cod sursa (job #2737110) | Cod sursa (job #3146823) | Cod sursa (job #59245) | Cod sursa (job #254753)
Cod sursa(job #254753)
var a:array[1..40] of longint;
sol:array[0..40] of int64;
f,g:text;
n,k:int64;
i,j:longint;
procedure complete(st,dr,plus,nr:int64);
var i,vf,n:longint;
stanga,dreapta:int64;
begin
n:=dr-st+1;
for i:=1 to n do
if sol[i-1]*sol[n-i]>=nr then begin
vf:=i;
break;
end
else
nr:=nr-sol[i-1]*sol[n-i];
if (st<=dr) and (n<>0) then begin
a[st]:=vf+plus-1;
stanga:=(nr-1) div sol[n-i]+1;
dreapta:=nr-(stanga-1)*sol[n-i];
complete(st+1,st+vf-1,plus,stanga);
complete(st+vf,dr,plus+vf,dreapta);
end;
end;
begin
assign(f,'planeta.in'); reset(f);
assign(g,'planeta.out'); rewrite(g);
read(f,n,k);
sol[0]:=1; sol[1]:=1;
for i:=2 to n do
for j:=1 to i do
sol[i]:=sol[i]+sol[j-1]*sol[i-j];
complete(1,n,1,k);
for i:=1 to n-1 do
write(g,a[i],' ');
writeln(g,a[n]);
close(f); close(g);
end.