問題文
長さ N の整数列 A=(A1,A2,ldots,AN) と正整数 K が与えられます。
各 i=1,2,ldots,Q について、A の連続部分列 (Ali,Ali+1,ldots,Ari) が良い数列かどうかを判定してください。
ここで、長さ n の数列 X=(X1,X2,ldots,Xn) は、下記の操作を好きな回数( 0 回でも良い)だけ行うことによって、X のすべての要素を 0 にすることができるとき、かつ、そのときに限り良い数列です。
1leqileqn−K+1 を満たす整数 i および、整数 c (負の数でも良い)を選び、K 個の要素 Xi,Xi+1,ldots,Xi+K−1 のそれぞれに c を加算する。
なお、すべての i=1,2,ldots,Q について、ri−li+1geqK が保証されます。
制約
- 1leqNleq2times105
- 1leqKleqminlbrace10,Nrbrace
- \-109leqAileq109
- 1leqQleq2times105
- 1leqli,rileqN
- ri−li+1geqK
- 入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
N K
A1 A2 ldots AN
Q
l1 r1
l2 r2
vdots
lQ rQ
出力
Q 行出力せよ。 i=1,2,ldots,Q について、i 行目には数列 (Ali,Ali+1,ldots,Ari) が良い数列である場合は Yes
を、 そうでない場合は 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) となる。
よって、1 行目には Yes
を出力します。
一方、数列 $(A_2, A_3, A_4, A_5, A_6, A_7) = (-1, 1, -2, 2, 0, 5)$ は、 どのような手順で操作を行ってもすべての要素を 0 にすることはできないため、良い数列ではありません。 よって、2 行目には 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