#abc274h. [abc274_h]XOR Sum of Arrays

[abc274_h]XOR Sum of Arrays

問題文

長さ MM の非負整数列 B=(B1,B2,dots,BM),C=(C1,C2,dots,CM)B=(B_1,B_2,\\dots,B_M), C=(C_1,C_2,\\dots,C_M) に対して、BBCCXOR 和 S(B,C)S(B,C) を長さ MM の非負整数列 $(B_1\\oplus C_1, B_2\\oplus C_2, ..., B_{M}\\oplus C_{M})$ として定義します。ここで oplus\\oplus はビットごとの排他的論理和を意味します。
例えば B=(1,2,3),C=(3,5,7)B = (1, 2, 3), C = (3, 5, 7) のとき $S(B, C) = (1\\oplus 3, 2\\oplus 5, 3\\oplus 7) = (2, 7, 4)$ です。

非負整数列 A=(A1,A2,dots,AN)A = (A_1, A_2, \\dots, A_N) が与えられます。AAii 番目から jj 番目までの要素からなる AA の連続部分列を A(i,j)A(i, j) と表します。
以下に説明するクエリが QQ 個与えられるので全て処理してください。

各クエリでは 11 以上 NN 以下の整数 a,b,c,d,e,fa, b, c, d, e, f が与えられます。これらの整数は aleqb,cleqd,eleqf,ba=dca \\leq b, c \\leq d, e \\leq f, b-a=d-c を満たします。このとき、S(A(a,b),A(c,d))S(A(a, b), A(c, d))A(e,f)A(e, f) よりも辞書順で真に小さければ Yes を、そうでなければ No を出力してください。

ビットごとの排他的論理和とは? 整数 A,BA, B のビットごとの排他的論理和 AoplusBA \\oplus B は、以下のように定義されます。

  • AoplusBA \\oplus B を二進表記した際の 2k2^k (kgeq0k \\geq 0) の位の数は、A,BA, B を二進表記した際の 2k2^k の位の数のうち一方のみが 11 であれば 11、そうでなければ 00 である。

例えば、3oplus5=63 \\oplus 5 = 6 となります (二進表記すると: 011oplus101=110011 \\oplus 101 = 110)。 数列の辞書順とは?

数列 A=(A1,ldots,AA)A = (A_1, \\ldots, A_{|A|})B=(B1,ldots,BB)B = (B_1, \\ldots, B_{|B|}) より辞書順で真に小さいとは、下記の 1. と 2. のどちらかが成り立つことを言います。

  1. A<B|A|<|B| かつ (A1,ldots,AA)=(B1,ldots,BA)(A_{1},\\ldots,A_{|A|}) = (B_1,\\ldots,B_{|A|}) である。
  2. ある整数 1leqileqminA,B1\\leq i\\leq \\min\\{|A|,|B|\\} が存在して、下記の 22 つがともに成り立つ。
    • (A1,ldots,Ai1)=(B1,ldots,Bi1)(A_{1},\\ldots,A_{i-1}) = (B_1,\\ldots,B_{i-1})
    • Ai<BiA_i < B_i

制約

  • 1leqNleq5times1051 \\leq N \\leq 5 \\times 10^5
  • 0leqAileq10180 \\leq A_i \\leq 10^{18}
  • 1leqQleq5times1041 \\leq Q \\leq 5 \\times 10^4
  • 1leqaleqbleqN1 \\leq a \\leq b \\leq N
  • 1leqcleqdleqN1 \\leq c \\leq d \\leq N
  • 1leqeleqfleqN1 \\leq e \\leq f \\leq N
  • ba=dcb - a = d - c
  • 入力される値はすべて整数

入力

入力は以下の形式で標準入力から与えられる。ここで textqueryi\\text{query}_iii 番目のクエリを意味する。

NN QQ A1A_1 A2A_2 dots\\dots ANA_N textquery1\\text{query}_1 textquery2\\text{query}_2 vdots\\vdots textqueryQ\\text{query}_Q

クエリは次の形式で与えられる。

aa bb cc dd ee ff

出力

QQ 行出力せよ。ii 行目には ii 番目のクエリへの答えを出力せよ。


入力例 1

4 5
1 2 3 1
1 3 2 4 1 4
1 2 2 3 3 4
1 1 2 2 3 4
1 2 2 3 3 3
1 4 1 4 1 1

出力例 1

No
No
Yes
No
Yes

11 番目のクエリについて、A(1,3)=(1,2,3),A(2,4)=(2,3,1)A(1, 3) = (1, 2, 3), A(2, 4) = (2, 3, 1) なので $S(A(1,3),A(2,4)) = (1 \\oplus 2, 2 \\oplus 3, 3 \\oplus 1) = (3, 1, 2)$ です。これは A(1,4)=(1,2,3,1)A(1, 4) = (1, 2, 3, 1) よりも辞書順で大きいので答えは No になります。
22 番目のクエリについて、S(A(1,2),A(2,3))=(3,1)S(A(1,2),A(2,3)) = (3, 1), A(3,4)=(3,1)A(3,4) = (3, 1) であり両者は等しく、答えは No になります。


入力例 2

10 10
725560240 9175925348 9627229768 7408031479 623321125 4845892509 8712345300 1026746010 4844359340 2169008582
5 6 5 6 2 6
5 6 1 2 1 1
3 8 3 8 1 6
5 10 1 6 1 7
3 4 1 2 5 5
7 10 4 7 2 3
3 6 1 4 7 9
4 5 3 4 8 9
2 6 1 5 5 8
4 8 1 5 1 9

出力例 2

Yes
Yes
Yes
Yes
No
No
No
No
No
No