问题描述
给定一个长度为 N 的整数序列 A=(A1,A2,…,AN),以及一个正整数 K。
对于每个 i=1,2,…,Q,判断是否存在连续的子序列 Ali,Ali+1,…,Ari 是一个好序列。
这里,长度为 n 的序列 X=(X1,X2,…,Xn) 是好的,当且仅当存在一种方式(可能为零次)执行下面的操作,使得 X 的所有元素都变为 0。
选择一个整数 i,满足 1≤i≤n−K+1,以及一个整数 c(可能为负数)。将 c 加到 Xi,Xi+1,…,Xi+K−1 的每个元素上。
保证对于每个 i=1,2,…,Q,有 ri−li+1≥K。
约束条件
- 1≤N≤2×105
- 1≤K≤min{10,N}
- \-109≤Ai≤109
- 1≤Q≤2×105
- 1≤li,ri≤N
- ri−li+1≥K
- 输入中的所有值都是整数。
输入
输入以以下格式从标准输入给出:
N K
A1 A2 … AN
Q
l1 r1
l2 r2
⋮
lQ rQ
输出
打印 Q 行。对于每个 i=1,2,…,Q,第 i 行应该输出 Yes
如果序列 (Ali,Ali+1,…,Ari) 是好序列,否则输出 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)$ 是好序列。事实上,可以执行以下操作使得所有元素变为 0:
- 首先,使用 i=2,c=4 进行操作,得到 X=(3,3,5,2,2,0)。
- 然后,使用 i=3,c=−2 进行操作,得到 X=(3,3,3,0,0,0)。
- 最后,使用 i=1,c=−3 进行操作,得到 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)$,无法使得所有元素变为 0,因此它不是一个好序列。因此,第二行应该输出 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