atcoder#ARC075B. [ABC063D] Widespread

[ABC063D] Widespread

配点 : 400400

問題文

あなたが散歩していると、突然 NN 体の魔物が出現しました。それぞれの魔物は 体力 という値を持ち、ii 体目の魔物の出現時の体力は hih_i です。体力が 00 以下となった魔物は直ちに消滅します。

幸い、あなたは熟練の魔法使いであり、爆発を引き起こして魔物を攻撃できます。一回の爆発では、以下のように魔物の体力を減らすことができます。

  • 生存している魔物を一体選び、その魔物を中心に爆発を引き起こす。爆発の中心となる魔物の体力は AA 減り、その他の魔物の体力はそれぞれ BB 減る。ここで、AABB はあらかじめ定まった値であり、A>BA > B である。

すべての魔物を消し去るためには、最小で何回の爆発を引き起こす必要があるでしょうか?

制約

  • 入力値はすべて整数である。
  • 1N1051 \leq N \leq 10^5
  • 1B<A1091 \leq B < A \leq 10^9
  • 1hi1091 \leq h_i \leq 10^9

入力

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

NN AA BB

h1h_1

h2h_2

::

hNh_N

出力

すべての魔物を消し去るために必要な最小の爆発の回数を出力せよ。

4 5 3
8
7
4
2
2

以下のようにして、22 回の爆発ですべての魔物を消し去ることができます。

  • まず、体力が 88 の魔物を中心に爆発を引き起こす。44 体の魔物の体力はそれぞれ 33, 44, 11, 1-1 となり、最後の魔物は消滅する。
  • 次に、残りの体力が 44 の魔物を中心に爆発を引き起こす。残っていた 33 体の魔物の体力はそれぞれ 00, 1-1, 2-2 となり、すべての魔物が消滅する。
2 10 4
20
20
4

それぞれの魔物を中心に 22 回ずつ、合計で 44 回の爆発を引き起こす必要があります。

5 2 1
900000000
900000000
1000000000
1000000000
1000000000
800000000