#acl1d. [acl1_d]Keep Distances

[acl1_d]Keep Distances

题目描述

在数轴上有 NN 个点,第 ii 个点位于坐标 XiX_i 上。这些点按照坐标递增的顺序编号。换言之,对于所有 ii1leqileqN11 \\leq i \\leq N-1),满足 Xi<Xi+1X_i < X_{i+1}。此外,给定一个整数 KK

进行 QQ 次查询。

在第 ii 次查询中,给定两个整数 LiL_iRiR_i。这里,如果一个点集 ss 满足以下条件,则称其为一个的点集。注意,好的点集的定义在每次查询中可能会有所不同。

  • ss 中的每个点是 XLi,XLi+1,ldots,XRiX_{L_i},X_{L_i+1},\\ldots,X_{R_i} 中的一个。
  • 对于 ss 中的任意两个不同的点,它们之间的距离大于等于 KK
  • ss 的大小是满足上述条件的所有点集中最大的。

对于每个查询,找到所有好的点集的并集的大小。

约束条件

  • 1leqNleq2times1051 \\leq N \\leq 2 \\times 10^5
  • 1leqKleq1091 \\leq K \\leq 10^9
  • 0leqX1<X2<cdots<XNleq1090 \\leq X_1 < X_2 < \\cdots < X_N \\leq 10^9
  • 1leqQleq2times1051 \\leq Q \\leq 2 \\times 10^5
  • 1leqLileqRileqN1 \\leq L_i \\leq R_i \\leq N
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入给出:

NN KK X1X_1 X2X_2 cdots\\cdots XNX_N QQ L1L_1 R1R_1 L2L_2 R2R_2 vdots\\vdots LQL_Q RQR_Q

输出

对于每个查询,在一行中打印所有好的点集的并集的大小。


样例输入 1

5 3
1 2 4 7 8
2
1 5
1 2

样例输出 1

4
2

在第一个查询中,你可以在一个好的点集中最多有 33 个点。存在两个好的点集:1,4,7\\{1,4,7\\}1,4,8\\{1,4,8\\}。因此,所有好的点集的并集的大小是 1,4,7,8=4|\\{1,4,7,8\\}|=4

在第二个查询中,你可以在一个好的点集中最多有 11 个点。存在两个好的点集:1\\{1\\}2\\{2\\}。因此,所有好的点集的并集的大小是 1,2=2|\\{1,2\\}|=2


样例输入 2

15 220492538
4452279 12864090 23146757 31318558 133073771 141315707 263239555 350278176 401243954 418305779 450172439 560311491 625900495 626194585 891960194
5
6 14
1 8
1 13
7 12
4 12

样例输出 2

4
6
11
2
3