A2016 「ROI 2016 Day1」人烟之山

暂无评定 传统题 ROI(俄罗斯) 上传者
时间限制2000ms
内存限制512MiB
通过 / 提交0/0

A2016「ROI 2016 Day1」人烟之山

暂无评定 传统题 ROI(俄罗斯) 上传者
时间限制2000ms
内存限制512MiB
通过 / 提交0/0

题目描述

译自 ROI 2016 Day1 T4. Обитаемые горы

基于斯特鲁伽茨基兄弟的小说《人烟之岛》。 译者没时间翻译完整题面了,泥萌先甭看故事了

roi16D1.sans.png

某地地形可用 nn 段折线来表示(下文称之为多段线),这 nn 段折线连接了 n+1n+1 个拐点,且保证没有垂直线。我们将拐点从左到右依次编为 0…n0\ldots n 号。我们将最左侧的点(即 00 号点)设为原点,然后给出每一段的射影长度(即该线段的两个端点的横坐标之差)和斜率。保证 nn 号点的纵坐标为 0.0.

在某些位置将建起瞭望塔,瞭望塔上有一个或一些瞭望台。假设已知点 AA 和点 BB,如果线段 ABAB 上没有点严格位于多段线以下,那么我们称点 AA 可以看到点 BB。

该地共有 qq 个瞭望台。给出所有瞭望台的位置。对于 j=1…q,j=1\ldots q, 试求:从 jj 号瞭望台的塔基向左 / 右走,一直走到什么地方时还能看到该瞭望台,而再走远一点点就看不到了。(我们称之为该瞭望台的视界。)

输入格式

第一行有两个整数 n,qn,q。
第二行有一个整数 C,C, 保证 C=104C=10^4 或 10910^9。这个数会提示下面输入的数据的范围。
接下来 nn 行,每行两个整数 di,d_i, kik_i (1⩽di⩽C,(1 ⩽ d_i ⩽ C, −C⩽ki⩽C)−C ⩽ k_i ⩽ C)。
接下来 qq 行,每行两个整数 uj,u_j, vjv_j (0⩽uj⩽C,(0 ⩽ u_j ⩽ C, −C⩽vj⩽C),−C ⩽ v_j ⩽ C), 表示瞭望台的坐标。

输出格式

共 qq 行,每行两个整数,表示该瞭望台的视界。

6 1
3 1
2 -1
1 1
1 -1
1 1
2 -1
5 3
3 8
sample1.png
```input2 5 3 1 1 1 -2 2 0 2 1 1 -1 3 0 3 5 3 3 ``` ```output2 1 6 0 7 0 6 ```
sample2.png
```input3 6 4 1 2 2 -2 1 1 1 -2 4 1 1 -1 1 4 3 4 10 4 7 4 ``` ```output3 0 4 1 9 4 10 1 10 ```
sample3.png
```input4 8 4 1 -3 2 0 1 1 2 0 1 -3 1 3 1 2 1 0 2 -2 6 -1 6 4 7 -4 ``` ```output4 0 6 4 9 0 10 6 9 ```
sample4.png
## 数据范围与提示
子任务 # 分值 1⩽n,q⩽1 ⩽ n, q ⩽ C=C= 额外条件 依赖子任务
1 9 100100 10410^4 ki=±1k_i = ±1
2  9  – 1
3 10 30003000 10910^9  –  1, 2
4 11 10510^5 ki=±1k_i = ±1 1
5  11  所有瞭望台都在
同一个瞭望塔上
6 12 所有瞭望塔上最高的
瞭望台的海拔相同
7 21 – 1–6
8 17 4×1054\times 10^5  –  1–7