C. 做不完的作业【提高−】

内存限制:256 MiB 时间限制:1000 ms 输入文件: task.in 输出文件: task.out
题目类型:传统 评测方式:文本比较

题目描述

高中的任务是非常艰巨的,要学习十门功课(浙江要学技术)。导致作业超级加倍,这一点在暑假就已经体现出来了。

作业的总量是一定的,但不同作业下发的时间是不一定的,导致每天都要花不同的时间应付作业。此时,如何保证睡眠是一个需要仔细考虑的问题。

提示:如果你对题目下面描述内容不太理解,可以配合样例更好地阅读。

n 个任务,第 i 个任务需要 t_i 的时间。Eric 要在若干天内依次完成这些任务。Eric 是一个专注的人,所以完成每个任务的时间必须连续

一天有 x 的时间。由于 Eric 需要睡觉,所以 Eric 不能利用所有的时间。具体地:

  • Eric 每天必须睡觉
  • Eric 每天的睡觉的时间是连续的,且睡觉时间结束后,第二天恰好开始;
  • Eric \boldsymbol i 的睡觉时间总和不能少于 r\cdot x\cdot i 的时间。 r 是一个给定的实数, i 是一个正整数。

Eric 想问你,至少需要多少天才能完成任务。

输入格式

第一行输入四个整数 n,x,p,q ,代表 r=\dfrac p q

接下来一行,输入 n 个整数,第 i 个代表 t_i

输出格式

输出一个正整数,代表最小天数。可以证明,在下文限定的数据下,一定存在至少一个解。

样例

样例输入 #1

3 5 1 3
1 2 2

样例输出 #1

2

样例输入 #2

2 10 4 10
9 1

样例输出 #2

3

样例输入 #3

10 2 1 2
1 1 1 1 1 1 1 1 1 1

样例输出 #3

10

样例 1 解释

下面是一种可能的方案:

Eric 先在第一天做任务 1,总共消耗 1 的时间,用 4 时间睡觉,满足至少要 5\times \dfrac 1 3=\dfrac 5 3 的时间睡觉的要求。

Eric 再在第二天加班加点,完成剩下的任务,有 1 的时间睡觉。两天睡觉总量为 5\ge 10\times \dfrac 1 3=\dfrac {10} 3 ,也是满足要求的。

样例 2 解释

Eric 试图在第一天完成任务 1,但假如要做就会熬夜,觉就不够睡。所以 Eric 第一天只能睡大觉。Eric 在第二天完成任务 1 就没有问题。

同时请注意,即使睡觉时间满足了要求,Eric 也不能在第二天就完成任务 2,因为 Eric 必须睡觉。所以 Eric 先睡到第三天,然后完成任务 2。可以证明不存在方案小于三天。

同时注意数据不保证 \gcd(p,q)=1

样例 3 解释

显然一天只能干一件活,所以要 10 天。

数据范围与提示

数据规模与约定

对于所有数据,保证 1\le n\le 10^5 1\le t_i<x\le 10^6 1\le p<q\le 10^6

\def\arraystretch{1.5} \begin{array}{|c|c|c|c|}\hline \bf 测试点 & \bf 分值 & n\le & \bf特殊性质 \\ \hline 1-2 & 20 & 3 & /\\\hline 3-4 & 20 & 10^3 & \bf A \\\hline 5-6 & 20 & / & \bf A\\\hline 7-8 & 20 & / & \bf B\\\hline 9-10 & 20 & / & /\\\hline \end{array}

特殊性质 \bf A \forall i,\ \dfrac{t_i}{x}+\dfrac{p}{q}\le 1

特殊性质 \bf B n\times q\le 10^6

为了减少评测量,本题开启子任务依赖。具体地,当且仅当前四个子任务全部通过时,子任务 5 才计分,否则子任务 5 计 0 分。