配点 : 600 点
問題文
長さ N の正整数列 A=(A1,…,AN) が与えられます。
Q 個のクエリを処理してください。i(1≤i≤Q) 番目のクエリでは、ALi,ALi+1,…,ARi から 1 つ以上の要素を選び、それらの排他的論理和を Xi にできるかどうか判定してください。
排他的論理和とは
整数 a,b のビットごとの排他的論理和 a xor b は、以下のように定義されます。
- a xor b を二進表記した際の 2k(k≥0) の位の数は、a,b を二進表記した際の 2k の位の数のうち一方のみが 1 であれば 1、そうでなければ 0 である。
例えば、3 xor 5=6 となります(二進表記すると: 011 xor 101=110)。
制約
- 1≤N≤4×105
- 1≤Q≤2×105
- 1≤Ai<260
- 1≤Li≤Ri≤N
- 1≤Xi<260
- 入力は全て整数である。
入力
入力は以下の形式で標準入力から与えられる。
N Q
A1 … AN
L1 R1 X1
⋮
LQ RQ XQ
出力
Q 行にわたって出力せよ。i(1≤i≤Q) 行目には、ALi,ALi+1,…,ARi から 1 つ以上の要素を選び、それらの排他的論理和を Xi にできるならば Yes
と、できないならば No
と出力せよ。
5 2
3 1 4 1 5
1 3 7
2 5 7
Yes
No
1 つ目のクエリでは、A1,A3 を選ぶことで排他的論理和を 7 にすることができます。
2 つ目のクエリでは、どのように要素を選んでも排他的論理和を 7 にすることはできません。
10 10
8 45 56 9 38 28 33 5 15 19
10 10 53
3 8 60
1 10 29
5 7 62
3 7 51
8 8 52
1 4 60
6 8 32
4 8 58
5 9 2
No
No
Yes
No
Yes
No
No
No
Yes
Yes