atcoder#ARC075B. [ABC063D] Widespread

[ABC063D] Widespread

题目描述

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

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

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

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

输入格式

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

N N A A B B h1 h_1 h2 h_2 : : hN h_N

输出格式

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

题目大意

你散步的时候,突然NN个魔物出现了。

各个魔物都有体力这个值,第ii个魔物出现时的体力是hih_i,而体力00以下的魔物立即消失。

幸运的是,你是一个熟练的魔法师,可以发动爆炸来攻击魔物。一次爆炸可以减少魔物的体力,如下所示。

选择生存的魔物,以魔物为中心引起爆炸。成为爆炸中心的魔物的体力AA减少,其他魔物的体力BB分别减少。

这里需要说明的是,AABB是预先确定的值,且A>BA>B

为了消灭所有的魔物,你最少需要引起几次爆炸呢?

4 5 3
8
7
4
2
2
2 10 4
20
20
4
5 2 1
900000000
900000000
1000000000
1000000000
1000000000
800000000

提示

制約

  • 入力値はすべて整数である。
  • 1 < = N < = 105 1\ <\ =\ N\ <\ =\ 10^5
  • 1 < = B < A < = 109 1\ <\ =\ B\ <\ A\ <\ =\ 10^9
  • 1 < = hi < = 109 1\ <\ =\ h_i\ <\ =\ 10^9

Sample Explanation 1

以下のようにして、2 2 回の爆発ですべての魔物を消し去ることができます。 - まず、体力が 8 8 の魔物を中心に爆発を引き起こす。4 4 体の魔物の体力はそれぞれ 3 3 , 4 4 , 1 1 , 1 -1 となり、最後の魔物は消滅する。 - 次に、残りの体力が 4 4 の魔物を中心に爆発を引き起こす。残っていた 3 3 体の魔物の体力はそれぞれ 0 0 , 1 -1 , 2 -2 となり、すべての魔物が消滅する。

Sample Explanation 2

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