#L4846. 「POI2020 R2」Wielki Upadek

    ID: 4031 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>其他双指针扫描数据结构树状数组贪心区间合并资源分配

「POI2020 R2」Wielki Upadek

题目描述

题目译自 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_1H1H_1 能整除 H2H_2


输出格式

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


样例 1

输入

3
1 5
10 6
20 7
1 4 2 1

输出

5

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


样例 2

见附加文件下 wie1.inwie1.out

该样例满足 n=1n=1, N1=N2=10N_1=N_2=10, H1=2H_1=2, H2=4H_2=4


样例 3

见附加文件下 wie2.inwie2.out

该样例满足 n=6n=6,骨牌摆放在位置 0,3,5,10,12,150,3,5,10,12,15N1+N2=3N_1+N_2=3, H1=H2=1H_1=H_2=1,最多能推倒 77 块骨牌;


样例 4

见附加文件下 wie3.inwie3.out

该样例满足 n=200000n=200000,摆放的骨牌高度为 9191,位置为 190190 的连续倍数,N1=N2=nN_1=N_2=n, H1=90H_1=90, H2=9H_2=9,新骨牌数量恰好能推倒所有骨牌。


数据范围与提示

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

子任务 附加限制 分值
1 n2000n \leq 2000 25
2 H1=H2H_1 = H_2
3 无附加限制 50