AT_bitflyer2018_final_d 数列 XOR
Description
[problemUrl]: https://atcoder.jp/contests/bitflyer2018-final/tasks/bitflyer2018_final_d
長さ $ N $ の $ 2 $ つの整数列 $ (A_1,\ A_2,\ ...,\ A_N) $, $ (B_1,\ B_2,\ ...,\ B_N) $ があります. あなたは,数列 $ A $ に対して次の操作を繰り返し行うことができます:
- 整数 $ i $ ($ 1\ \leq\ i\ \leq\ N-1) $ を選ぶ.そして,$ A_i $ を $ A_i $ $ xor $ $ A_{i+1} $ に置き換えるか,$ A_{i+1} $ を $ A_i $ $ xor $ $ A_{i+1} $ に置き換えるかのいずれかを行う.
ただし,$ xor $ はビットごとの排他的論理和を表します.
この操作を繰り返すことで,$ A $ と $ B $ を一致させることができるかを判定してください.
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ A_1 $ $ A_2 $ ... $ A_N $ $ B_1 $ $ B_2 $ ... $ B_N $
Output Format
問題文中の操作の繰り返しで,$ A $ と $ B $ を一致させることができるなら `Yes` を,できないなら `No` を出力せよ.
Explanation/Hint
### 制約
- $ 1\ \leq\ N\ \leq\ 100000 $
- $ A_i,\ B_i $ は整数
- $ 0\ \leq\ A_i\ \leq\ 2^{60}\ -\ 1 $
- $ 0\ \leq\ B_i\ \leq\ 2^{60}\ -\ 1 $
### Sample Explanation 1
はじめ,$ A $ は $ (4,\ 6,\ 1,\ 2) $ です. - $ i=2 $ を選んで,$ A_2 $ を $ A_2 $ $ xor $ $ A_3 $ で置き換えると,$ A $ は $ (4,\ 7,\ 1,\ 2) $ になります. - $ i=1 $ を選んで,$ A_2 $ を $ A_1 $ $ xor $ $ A_2 $ で置き換えると,$ A $ は $ (4,\ 3,\ 1,\ 2) $ になります. - $ i=3 $ を選んで,$ A_3 $ を $ A_3 $ $ xor $ $ A_4 $ で置き換えると,$ A $ は $ (4,\ 3,\ 3,\ 2) $ になります. - $ i=2 $ を選んで,$ A_2 $ を $ A_2 $ $ xor $ $ A_3 $ で置き換えると,$ A $ は $ (4,\ 0,\ 3,\ 2) $ になります. よって,$ A $ と $ B $ を一致させることができます.
### Sample Explanation 2
どのように操作をしても,$ A $ と $ B $ を一致させることはできません.