AT_abc153_d [ABC153D] Caracal vs Monster
Description
[problemUrl]: https://atcoder.jp/contests/abc153/tasks/abc153_d
カラカルはモンスターと戦っています。
モンスターの体力は $ H $ です。
カラカルはモンスターを $ 1 $ 体選んで攻撃することができます。モンスターを攻撃したとき、攻撃対象のモンスターの体力に応じて、次のどちらかが起こります。
- モンスターの体力が $ 1 $ なら、そのモンスターの体力は $ 0 $ になる
- モンスターの体力が $ X\ >\ 1 $ なら、そのモンスターは消滅し、体力が $ \lfloor\ X/2\ \rfloor $ のモンスターが新たに $ 2 $ 体現れる
($ \lfloor\ r\ \rfloor $ は $ r $ を超えない最大の整数を表す)
全てのモンスターの体力を $ 0 $ 以下にすればカラカルの勝ちです。
カラカルがモンスターに勝つまでに行う攻撃の回数の最小値を求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ H $
Output Format
カラカルがモンスターに勝つまでに行う攻撃の回数の最小値を出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ H\ \leq\ 10^{12} $
- 入力中のすべての値は整数である。
### Sample Explanation 1
モンスターを攻撃すると、元のモンスターは消滅し、体力 $ 1 $ のモンスターが $ 2 $ 体現れます。 この $ 2 $ 体のモンスターをそれぞれ $ 1 $ 回ずつ攻撃し、合計 $ 3 $ 回の攻撃で勝つことができます。