Clipped Collatz Cost

2 secs 1024 MB
yuki4869's icon yuki4869

問題文

正整数 N,KN,K が与えられます。

正整数 XX に対して、次の 22 種類の操作を行うことができます。

  • 操作 11

    XX を次の値に変更する。

    Xmin(3X+1,K)X \leftarrow \min(3X+1,K)

    この操作にかかるコストは、操作前の XX が奇数なら 11、偶数なら 22 です。

  • 操作 22

    XX を次の値に変更する。

    Xmin(X2,K)X \leftarrow \min\left(\left\lceil\frac{X}{2}\right\rceil,K\right)

    この操作にかかるコストは、操作前の XX が偶数なら 11、奇数なら 22 です。

各整数 i=1,2,,Ni=1,2,\ldots,N について、初期値 X=iX=i から操作を繰り返し、初めて X=1X=1 となるまでに必要なコストの最小値を CiC_i とします。

特に C1=0C_1=0 です。

各整数 j=0,1,,36j=0,1,\ldots,36 に対して、整数 AjA_jCi=jC_i = j となる個数、

Aj=#{i1iN, Ci=j}A_j=\#\{\,i\mid 1\le i\le N,\ C_i=j\,\}

と定めます。

A0,A1,,A36A_0,A_1,\ldots,A_{36} を求めてください。

制約

  • 1NK2181\le N\le K\le2^{18}
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

N  KN\ \ K

出力

A0,A1,,A36A_0,A_1,\ldots,A_{36} をこの順に空白区切りで出力してください。

入力例1

3 4

出力例1

1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

各整数について最小コストと、それを達成する遷移の一例は以下の通りです。

  • C1=0C_1=0
  • C2=1C_2=1
    • 212\rightarrow1(操作 22、コスト 11
  • C3=3C_3=3
    • 343\rightarrow4(操作 11、コスト 11
    • 424\rightarrow2(操作 22、コスト 11
    • 212\rightarrow1(操作 22、コスト 11

したがって、

  • A0=1A_0=1
  • A1=1A_1=1
  • A3=1A_3=1

となり、それ以外の AjA_j はすべて 00 です。

入力例2

262144 262144

出力例2

1 1 1 2 3 5 8 14 21 37 57 97 152 257 404 679 1076 1795 2863 92118 94146 59262 7318 1756 71 0 0 0 0 0 0 0 0 0 0 0 0

218=2621442^{18} = 262144 です。

Submit


Go (1.21)