#407. [R65E]运动的点

[R65E]运动的点

时空限制

2S/512M

题目描述

数轴上有 nn 个点正在进行周期性的往返运动。

ii 个点 (1in)(1 \le i \le n) 的运动区间是 [xi,xi+L][x_i, x_i + L]。所有点的运动区间长度相同,均为 LL

在第 00 秒时:

  • ci=0c_i = 0,则第 ii 个点位于 xix_i,且其初始运动方向向右;
  • ci=1c_i = 1,则第 ii 个点位于 xi+Lx_i + L,且其初始运动方向向左。

所有的点每秒移动 11 个单位长度。当任意一个点到达其运动区间的端点时,它会立刻调头反向移动。

现在有 qq 个询问,每个询问给出时间 tt 和一个整数 kk,请你求出在第 tt 秒时,所有点当前位置中的第 kk 小值。

格式

输入格式

第一行包含三个正整数 nnqqLL,分别表示点的个数、询问的个数以及区间的长度。

接下来 nn 行,每行包含两个整数 xix_icic_i,描述第 ii 个点的运动区间起点和初始方向。

接下来 qq 行,每行包含两个整数 tjt_jkjk_j,描述第 jj 次询问的时间和所需的排名。

输出格式

对于每个询问,输出一行一个整数,表示在第 tt 秒时所有点位置中的第 kk 小值。

样例

样例输入 #1

5 4 10
0 0
7 0
3 1
12 1
20 0
0 3
3 2
12 4
20 5

样例输出 #1

13
10
15
22

样例解释 #1

对于各个询问:

  1. t=0,k=3t = 0, k = 3:此时各点位置为 0,7,13,22,200, 7, 13, 22, 20。从小到大排序为 0,7,13,20,220, 7, 13, 20, 22,第 33 小值为 1313
  2. t=3,k=2t = 3, k = 2:此时各点位置为 3,10,10,19,233, 10, 10, 19, 23。从小到大排序为 3,10,10,19,233, 10, 10, 19, 23,第 22 小值为 1010
  3. t=12,k=4t = 12, k = 4:此时各点位置为 8,15,5,14,288, 15, 5, 14, 28。从小到大排序为 5,8,14,15,285, 8, 14, 15, 28,第 44 小值为 1515
  4. t=20,k=5t = 20, k = 5:运动周期为 2L=202L = 20 秒,此时所有点回到了第 00 秒的位置,即 0,7,13,22,200, 7, 13, 22, 20。从小到大排序后,第 55 小值为 2222

数据规模

注意:你只有通过了子任务的所有测试点,才能获得对应子任务的分数。

子任务编号 分数 n,qn, q\le LL\le tjt_j\le
11 4040 20002000
22 6060 2×1052\times 10^5 10910^9 101810^{18}

对于 100%100\% 的数据,1n,q2×1051 \le n, q \le 2 \times 10^51L1091 \le L \le 10^90xi1090 \le x_i \le 10^9ci{0,1}c_i \in \{0, 1\}0tj10180 \le t_j \le 10^{18}1kjn1 \le k_j \le n