100 atcoder#ABC153D. [ABC153D] Caracal vs Monster

[ABC153D] Caracal vs Monster

配点 : 400400

問題文

カラカルはモンスターと戦っています。

モンスターの体力は HH です。

カラカルはモンスターを 11 体選んで攻撃することができます。モンスターを攻撃したとき、攻撃対象のモンスターの体力に応じて、次のどちらかが起こります。

  • モンスターの体力が 11 なら、そのモンスターの体力は 00 になる
  • モンスターの体力が X>1X >1 なら、そのモンスターは消滅し、体力が X/2\lfloor X/2 \rfloor のモンスターが新たに 22 体現れる

r\lfloor r \rfloorrr を超えない最大の整数を表す)

全てのモンスターの体力を 00 以下にすればカラカルの勝ちです。

カラカルがモンスターに勝つまでに行う攻撃の回数の最小値を求めてください。

制約

  • 1H10121 \leq H \leq 10^{12}
  • 入力中のすべての値は整数である。

入力

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

HH

出力

カラカルがモンスターに勝つまでに行う攻撃の回数の最小値を出力せよ。

2
3

モンスターを攻撃すると、元のモンスターは消滅し、体力 11 のモンスターが 22 体現れます。

この 22 体のモンスターをそれぞれ 11 回ずつ攻撃し、合計 33 回の攻撃で勝つことができます。

4
7
1000000000000
1099511627775