题意
给定一个长度为 N 的整数序列 A=(A1,A2,…,AN) 和一个正整数 K。
对于每个 i=1,2,…,Q,请判断 A 的连续子序列 (Ali,Ali+1,…,Ari) 是否为好数列。
这里,长度为 n 的数列 X=(X1,X2,…,Xn),如果可以通过任意次数(可以为 0 次)执行如下操作,使得 X 的所有元素都变为 0,那么且仅当如此,称 X 为好数列。
选择满足 1≤i≤n−K+1 的整数 i 和一个整数 c(c 可以为负数),将 Xi,Xi+1,…,Xi+K−1 这 K 个元素各自加上 c。
另外,保证对于所有 i=1,2,…,Q,都有 ri−li+1≥K。
输入格式
输入按以下格式从标准输入给出。
N K
A1 A2 … AN
Q
l1 r1
l2 r2
⋮
lQ rQ
输出格式
输出 Q 行。对于每个 i=1,2,…,Q,如果数列 (Ali,Ali+1,…,Ari) 是好数列,则第 i 行输出 Yes
,否则输出 No
。
输入输出样例 #1
输入 #1
7 3
3 -1 1 -2 2 0 5
2
1 6
2 7
输出 #1
Yes
No
输入输出样例 #2
输入 #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
说明/提示
样例解释 1
数列 X:=(A1,A2,A3,A4,A5,A6)= (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)。
因此,第 1 行输出 Yes
。
另一方面,数列 (A2,A3,A4,A5,A6,A7) =(−1,1,−2,2,0,5),无论如何操作,都无法使所有元素都变为 0,因此不是好数列。
因此,第 2 行输出 No
。
限制条件
【数据范围】
对于所有数据
- 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 |
特殊性质 |
测试点分值 |
1 |
≤103 |
≤2 |
无 |
10 |
2 |
≤2×105 |
k≤2 |
20 |
3 |
≤2×105 |
70 |