atcoder#CODEFESTIVAL2016FINALE. Cookies

Cookies

题目描述

りんごさんはクッキーを焼いています。

りんごさんははじめ、1 1 秒間に 1 1 枚のクッキーを焼くことができます。

りんごさんはクッキーを食べることができます。 まだ食べていないクッキーが全部で x x 枚あるとき、りんごさんはそれらをすべて食べることにより、1 1 秒間に焼くことのできるクッキーの枚数がちょうど x x 枚になります。 クッキーを一部だけ食べることはできず、食べるときはすべて食べなければなりません。 クッキーを食べるためには個数にかかわらず A A 秒の時間がかかり、その間はクッキーを焼くことができません。 また、クッキーは 1 1 秒ごとに同時に焼きあがるため、例えば 0.5 0.5 秒で x/2 x/2 枚のクッキーを焼くというようなことはできません。

りんごさんは N N 枚のクッキーをおばあさんにプレゼントしたいと思っています。 りんごさんがまだ食べていないクッキーを N N 枚以上用意するためにかかる時間の最小値を求めてください。

输入格式

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

N N A A

输出格式

りんごさんがまだ食べていないクッキーを N N 枚以上用意するためにかかる時間の最小値を出力せよ。

题目大意

题目描述

RNG正在烤饼干。

RNG开始时一秒可以烤一块饼干。

在烘焙过程中,当有XX块饼干没有吃时,RNG可以选择吃那些饼干。在他吃完那些饼干之后,他每秒烘焙的饼干数量就变成了XX。不管吃几块饼干,总是需要花费AA秒的时间,并且在此期间不能烤新的饼干。另外,饼干总是需要烘烤1秒,也就是说不能用0.5秒烧X/2X/2张的曲奇。

RNG想把NN张饼干送给奶奶。请找出生产至少NN个尚未吃过的饼干所需的最短时间。

输入输出格式

输入格式

N A

输出格式

一行,生产至少N个尚未吃过的饼干所需的最短时间。

限制

  • 1N10121≦N≦10^{12}

  • 0A10120≦A≦10^{12}

  • AA是个整型变量

部分分数

通过测试集满足N106N≦10^6A106A≦10^6将获得500分。 剩余的500分将会在通过全部的数据之后奖励给你

样例说明1

在7秒内可以生产8块饼干,如下:

1秒后:一个曲奇完成了。

2秒后,再做1个曲奇,总共2个。现在,RNG开始吃那2块饼干。

3秒钟后,他吃完饼干,现在他可以每秒烘烤两块饼干。

4秒后,完成2个曲奇。

5秒后,再做2个饼干,共计4个。

6秒后,再做2个饼干,共计6个。

7秒后,再做2个饼干,共计8个。

感谢@Sheffield 提供翻译

8 1
7
1000000000000 1000000000000
1000000000000
123456 7
78

提示

制約

  • 1N1012 1≦N≦10^{12}
  • 0A1012 0≦A≦10^{12}
  • A A は整数である。

部分点

  • N106 N≦10^6 かつ A106 A≦10^6 を満たすデータセットに正解した場合は、500 500 点が与えられる。
  • 追加制約のないデータセットに正解した場合は、上記とは別に 500 500 点が与えられる。

Sample Explanation 1

以下のように行動すると、7 7 秒で 8 8 枚のクッキーを用意することができます。 - 1 1 秒後:1 1 枚のクッキーが焼きあがる。 - 2 2 秒後:1 1 枚のクッキーが焼きあがり、合計枚数が 2 2 枚となる。ここで、2 2 枚のクッキーをすべて食べる。 - 3 3 秒後:クッキーを食べ終わり、1 1 秒間に 2 2 枚のクッキーを焼くことができるようになる。 - 4 4 秒後:2 2 枚のクッキーが焼きあがる。 - 5 5 秒後:2 2 枚のクッキーが焼きあがり、合計枚数が 4 4 枚となる。 - 6 6 秒後:2 2 枚のクッキーが焼きあがり、合計枚数が 6 6 枚となる。 - 7 7 秒後:2 2 枚のクッキーが焼きあがり、合計枚数が 8 8 枚となる。