#3668. 加速清空 (clean)

加速清空 (clean)

题目描述

处理系统中有 nn 个任务,第 ii 个任务最初还有 aia_i 单位的工作量。

系统以完整的整数秒为单位运行。在每一秒开始时,你可以选择至多一个尚未完成的任务使用加速器。在这一秒结束时:

  • 每个尚未完成的任务都会自动减少 xx 单位工作量;
  • 被加速器选中的任务还会额外减少 yy 单位工作量。

因此,被选中的任务在这一秒内共减少 x+yx+y 单位工作量,其他尚未完成的任务减少 xx 单位工作量。每一秒都可以重新选择要加速的任务,也可以不使用加速器。

当一个任务的剩余工作量小于或等于 00 时,该任务完成,之后不再需要处理。

请计算完成全部任务所需的最少整数秒数。

输入格式

在文件 clean.in 中读入。

第一行输入三个整数 n,x,yn,x,y

第二行输入 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n,表示各任务最初的工作量。

输出格式

在文件 clean.out 中输出。

输出一行一个整数,表示完成全部任务所需的最少秒数。

样例

样例输入 #1

4 2 3
2 4 7 8

样例输出 #1

3

样例 1 解释

经过 33 秒的自动处理,每个任务都会减少 66 单位工作量。此时第 3344 个任务还分别需要减少 1122 单位工作量。

可以在这 33 秒中的两秒分别加速第 3344 个任务,从而在 33 秒内完成全部任务。

如果只运行 22 秒,自动处理后第 3344 个任务还分别剩余 3344 单位工作量。它们分别至少需要 11 秒和 22 秒加速,共需 33 秒加速器时间,而两秒内加速器最多工作 22 秒,因此无法完成。答案为 33

大样例

数据范围

对于所有测试数据,保证:

1n5×1051\le n\le 5\times10^5 1x,y5×1051\le x,y\le 5\times10^5 1ai5×1051\le a_i\le 5\times10^5

aia_i 之间不要求互不相同。计算过程中可能出现超出 32 位有符号整数范围的中间结果。

子任务 分值 额外限制
1 20 n10n\le 10,且 ai,x,y100a_i,x,y\le 100
2 30 n5000n\le 5000,且 ai,x,y5000a_i,x,y\le 5000
3 50 无额外限制