AT_abc223_h [ABC223H] Xor Query
Description
[problemUrl]: https://atcoder.jp/contests/abc223/tasks/abc223_h
長さ $ N $ の正整数列 $ A\ =\ (A_1,\ \dots,\ A_N) $ が与えられます。
$ Q $ 個のクエリを処理してください。$ i\ \,\ (1\ \leq\ i\ \leq\ Q) $ 番目のクエリでは、$ A_{L_i},\ A_{L_i\ +\ 1},\ \dots,\ A_{R_i} $ から $ 1 $ つ以上の要素を選び、それらの排他的論理和を $ X_i $ にできるかどうか判定してください。
排他的論理和とは 整数 $ a,\ b $ のビットごとの排他的論理和 $ a\ \mathrm{xor}\ b $ は、以下のように定義されます。
- $ a\ \mathrm{xor}\ b $ を二進表記した際の $ 2^k\ \,\ (k\ \geq\ 0) $ の位の数は、$ a,\ b $ を二進表記した際の $ 2^k $ の位の数のうち一方のみが $ 1 $ であれば $ 1 $、そうでなければ $ 0 $ である。
例えば、$ 3\ \mathrm{xor}\ 5\ =\ 6 $ となります(二進表記すると: $ 011\ \mathrm{xor}\ 101\ =\ 110 $)。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ Q $ $ A_1 $ $ \ldots $ $ A_N $ $ L_1 $ $ R_1 $ $ X_1 $ $ \vdots $ $ L_Q $ $ R_Q $ $ X_Q $
Output Format
$ Q $ 行にわたって出力せよ。$ i\ \,\ (1\ \leq\ i\ \leq\ Q) $ 行目には、$ A_{L_i},\ A_{L_i\ +\ 1},\ \dots,\ A_{R_i} $ から $ 1 $ つ以上の要素を選び、それらの排他的論理和を $ X_i $ にできるならば `Yes` と、できないならば `No` と出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 4\ \times\ 10^5 $
- $ 1\ \leq\ Q\ \leq\ 2\ \times\ 10^5 $
- $ 1\ \leq\ A_i\ \lt\ 2^{60} $
- $ 1\ \leq\ L_i\ \leq\ R_i\ \leq\ N $
- $ 1\ \leq\ X_i\ \lt\ 2^{60} $
- 入力は全て整数である。
### Sample Explanation 1
$ 1 $ つ目のクエリでは、$ A_1,\ A_3 $ を選ぶことで排他的論理和を $ 7 $ にすることができます。 $ 2 $ つ目のクエリでは、どのように要素を選んでも排他的論理和を $ 7 $ にすることはできません。