AT_codefestival_2016_final_e Cookies
Description
[problemUrl]: https://atcoder.jp/contests/cf16-final/tasks/codefestival_2016_final_e
りんごさんはクッキーを焼いています。
りんごさんははじめ、$ 1 $ 秒間に $ 1 $ 枚のクッキーを焼くことができます。
りんごさんはクッキーを食べることができます。 まだ食べていないクッキーが全部で $ x $ 枚あるとき、りんごさんはそれらをすべて食べることにより、$ 1 $ 秒間に焼くことのできるクッキーの枚数がちょうど $ x $ 枚になります。 クッキーを一部だけ食べることはできず、食べるときはすべて食べなければなりません。 クッキーを食べるためには個数にかかわらず $ A $ 秒の時間がかかり、その間はクッキーを焼くことができません。 また、クッキーは $ 1 $ 秒ごとに同時に焼きあがるため、例えば $ 0.5 $ 秒で $ x/2 $ 枚のクッキーを焼くというようなことはできません。
りんごさんは $ N $ 枚のクッキーをおばあさんにプレゼントしたいと思っています。 りんごさんがまだ食べていないクッキーを $ N $ 枚以上用意するためにかかる時間の最小値を求めてください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ A $
Output Format
りんごさんがまだ食べていないクッキーを $ N $ 枚以上用意するためにかかる時間の最小値を出力せよ。
Explanation/Hint
### 制約
- $ 1≦N≦10^{12} $
- $ 0≦A≦10^{12} $
- $ A $ は整数である。
### 部分点
- $ N≦10^6 $ かつ $ A≦10^6 $ を満たすデータセットに正解した場合は、$ 500 $ 点が与えられる。
- 追加制約のないデータセットに正解した場合は、上記とは別に $ 500 $ 点が与えられる。
### Sample Explanation 1
以下のように行動すると、$ 7 $ 秒で $ 8 $ 枚のクッキーを用意することができます。 - $ 1 $ 秒後:$ 1 $ 枚のクッキーが焼きあがる。 - $ 2 $ 秒後:$ 1 $ 枚のクッキーが焼きあがり、合計枚数が $ 2 $ 枚となる。ここで、$ 2 $ 枚のクッキーをすべて食べる。 - $ 3 $ 秒後:クッキーを食べ終わり、$ 1 $ 秒間に $ 2 $ 枚のクッキーを焼くことができるようになる。 - $ 4 $ 秒後:$ 2 $ 枚のクッキーが焼きあがる。 - $ 5 $ 秒後:$ 2 $ 枚のクッキーが焼きあがり、合計枚数が $ 4 $ 枚となる。 - $ 6 $ 秒後:$ 2 $ 枚のクッキーが焼きあがり、合計枚数が $ 6 $ 枚となる。 - $ 7 $ 秒後:$ 2 $ 枚のクッキーが焼きあがり、合計枚数が $ 8 $ 枚となる。