#P12897. [POI 2019/2020 R2] 伟大倒塌 Wielki Upadek

[POI 2019/2020 R2] 伟大倒塌 Wielki Upadek

题目背景

翻译来自于 LibreOJ

题目描述

题目译自 XXVII Olimpiada Informatyczna – II etap Wielki Upadek

Bajtek 拥有一套相当可观的 nn 张多米诺骨牌收藏,这些骨牌高度各不相同,他喜欢将它们排成一列,观看它们一个接一个倒下的壮观景象。为了他最新的创意项目(暂命名为「伟大倒塌」),他决定利用手中所有的多米诺骨牌,将它们依次排列在数轴上的某些整数位置。

当 Bajtek 终于按照计划摆好所有骨牌时,妈妈送来了生日礼物——两盒装满较小多米诺骨牌的新礼盒。每盒中的骨牌高度相同,且都比已摆放的骨牌矮。而且,按照 Bajtek 的要求,其中一盒骨牌的高度是另一盒骨牌高度的倍数。由于 Bajtek 不想改变已摆放骨牌的位置,他决定将新骨牌放置在空闲的位置上。

根据「伟大倒塌」项目的设想,当所有骨牌摆放完毕后,Bajtek 会选择其中一块,向某个方向(向左或向右)推动,以尽可能多地推倒骨牌。根据经验,他知道每块倒下的骨牌会推倒后续所有骨牌,前提是这些骨牌与它的距离不超过它的高度。

Bajtek 对如何处理这些新骨牌感到困惑。请你帮助他,计算如果他在合适的位置放置新骨牌,最多能推倒多少块多米诺骨牌。

输入格式

输入的第一行包含一个整数 nn (1n200000)(1 \leq n \leq 200000),表示 Bajtek 原本拥有的并已在「伟大倒塌」项目中摆放的骨牌数量。

接下来的 nn 行描述 Bajtek 摆放的骨牌,第 ii 行包含两个整数 xi,hix_{i}, h_{i} $(0 \leq x_{i} \leq 10^{18}, x_{i-1} < x_{i}, 1 \leq h_{i} \leq 2000000)$,用单个空格分隔,分别表示第 ii 块骨牌的位置和高度。

最后一行包含四个整数 N1,H1,N2,H2N_{1}, H_{1}, N_{2}, H_{2} $(0 \leq N_{1}, N_{2} \leq 10^{18}, 1 \leq H_{1}, H_{2} \leq 10^{6})$,用单个空格分隔,分别表示第一盒骨牌的数量和高度,以及第二盒骨牌的数量和高度。新骨牌比旧骨牌矮,因此 H1,H2<hiH_{1}, H_{2} < h_{i} 对每个 ii 都成立。按照 Bajtek 的要求,H2H_{2} 能整除 H1H_{1}H1H_{1} 能整除 H2H_{2}

输出格式

输出一行,包含一个整数,表示在「伟大倒塌」项目中最多能倒下的骨牌数量。

3
1 5
10 6
20 7
1 4 2 1
5

提示

样例 1 解释

一种可行的摆放方式是:在位置 66 放置一块高度为 44 的骨牌,在位置 4455 各放置一块高度为 11 的骨牌,然后向右推动位置 11 上的骨牌。

附加样例

  1. 该样例满足 n=1,N1=N2=10,H1=2,H2=4n=1, N_{1}=N_{2}=10, H_{1}=2, H_{2}=4
  2. 该样例满足 n=6n=6,骨牌摆放在位置 0,3,5,10,12,150,3,5,10,12,15N1+N2=3,H1=H2=1N_{1}+N_{2}=3, H_{1}=H_{2}=1,最多能推倒 77 块骨牌;
  3. 该样例满足 n=200000n=200000,摆放的骨牌高度为 9191,位置为 190190 的连续倍数,N1=N2=n,H1=90,H2=9N_{1}=N_{2}=n, H_{1}=90, H_{2}=9,新骨牌数量恰好能推倒所有骨牌。

详细子任务附加限制及分值如下表所示。

子任务 附加限制 分值
11 n2000n \leq 2000 2525
22 H1=H2H_{1}=H_{2}
33 无附加限制 5050