#abc288d. [abc288_d]Range Add Query

[abc288_d]Range Add Query

问题描述

给定一个长度为 NN 的整数序列 A=(A1,A2,,AN)A = (A_1, A_2, \ldots, A_N),以及一个正整数 KK

对于每个 i=1,2,,Qi = 1, 2, \ldots, Q,判断是否存在连续的子序列 Ali,Ali+1,,AriA_{l_i}, A_{l_i+1}, \ldots, A_{r_i} 是一个好序列

这里,长度为 nn 的序列 X=(X1,X2,,Xn)X = (X_1, X_2, \ldots, X_n)的,当且仅当存在一种方式(可能为零次)执行下面的操作,使得 XX 的所有元素都变为 00

选择一个整数 ii,满足 1inK+11 \leq i \leq n-K+1,以及一个整数 cc(可能为负数)。将 cc 加到 Xi,Xi+1,,Xi+K1X_{i}, X_{i+1}, \ldots, X_{i+K-1} 的每个元素上。

保证对于每个 i=1,2,,Qi = 1, 2, \ldots, Q,有 rili+1Kr_i - l_i + 1 \geq K

约束条件

  • 1N2×1051 \leq N \leq 2 \times 10^5
  • 1Kmin{10,N}1 \leq K \leq \min\lbrace 10, N \rbrace
  • \-109Ai109\-10^9 \leq A_i \leq 10^9
  • 1Q2×1051 \leq Q \leq 2 \times 10^5
  • 1li,riN1 \leq l_i, r_i \leq N
  • rili+1Kr_i-l_i+1 \geq K
  • 输入中的所有值都是整数。

输入

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

NN KK A1A_1 A2A_2 \ldots ANA_N QQ l1l_1 r1r_1 l2l_2 r2r_2 \vdots lQl_Q rQr_Q

输出

打印 QQ 行。对于每个 i=1,2,,Qi = 1, 2, \ldots, Q,第 ii 行应该输出 Yes 如果序列 (Ali,Ali+1,,Ari)(A_{l_i}, A_{l_i+1}, \ldots, A_{r_i}) 是好序列,否则输出 No

示例

输入示例 1

7 3
3 -1 1 -2 2 0 5
2
1 6
2 7

输出示例 1

Yes
No

序列 $X \coloneqq (A_1, A_2, A_3, A_4, A_5, A_6) = (3, -1, 1, -2, 2, 0)$ 是好序列。事实上,可以执行以下操作使得所有元素变为 00

  • 首先,使用 i=2,c=4i = 2, c = 4 进行操作,得到 X=(3,3,5,2,2,0)X = (3, 3, 5, 2, 2, 0)
  • 然后,使用 i=3,c=2i = 3, c = -2 进行操作,得到 X=(3,3,3,0,0,0)X = (3, 3, 3, 0, 0, 0)
  • 最后,使用 i=1,c=3i = 1, c = -3 进行操作,得到 X=(0,0,0,0,0,0)X = (0, 0, 0, 0, 0, 0)

因此,第一行应该输出 Yes

另一方面,对于序列 $(A_2, A_3, A_4, A_5, A_6, A_7) = (-1, 1, -2, 2, 0, 5)$,无法使得所有元素变为 00,因此它不是一个好序列。因此,第二行应该输出 No

输入示例 2

20 4
-19 -66 -99 16 18 33 32 28 26 11 12 0 -16 4 21 21 37 17 55 -19
5
13 16
4 11
3 12
13 18
4 10

输出示例 2

No
Yes
No
Yes
No