問題文
長さ 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
出力例 1
数列 Xcoloneqq(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
を出力します。
入力例 2
出力例 2