D - 数列 XOR Editorial /

Time Limit: 2 sec / Memory Limit: 256 MB

配点 : 600

問題文

長さ N2 つの整数列 (A_1, A_2, ..., A_N), (B_1, B_2, ..., B_N) があります. あなたは,数列 A に対して次の操作を繰り返し行うことができます:

  • 整数 i (1 \leq i \leq N-1) を選ぶ.そして,A_iA_i xor A_{i+1} に置き換えるか,A_{i+1}A_i xor A_{i+1} に置き換えるかのいずれかを行う.

ただし,xor はビットごとの排他的論理和を表します.

この操作を繰り返すことで,AB を一致させることができるかを判定してください.

制約

  • 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

入力

入力は以下の形式で標準入力から与えられる。

N
A_1 A_2 ... A_N
B_1 B_2 ... B_N

出力

問題文中の操作の繰り返しで,AB を一致させることができるなら Yes を,できないなら No を出力せよ.


入力例 1

4
4 6 1 2
4 0 3 2

出力例 1

Yes

はじめ,A(4, 6, 1, 2) です.

  • i=2 を選んで,A_2A_2 xor A_3 で置き換えると,A(4, 7, 1, 2) になります.
  • i=1 を選んで,A_2A_1 xor A_2 で置き換えると,A(4, 3, 1, 2) になります.
  • i=3 を選んで,A_3A_3 xor A_4 で置き換えると,A(4, 3, 3, 2) になります.
  • i=2 を選んで,A_2A_2 xor A_3 で置き換えると,A(4, 0, 3, 2) になります.

よって,AB を一致させることができます.


入力例 2

5
1 1 1 1 1
2 2 2 2 2

出力例 2

No

どのように操作をしても,AB を一致させることはできません.


入力例 3

10
9078757738433288 290842434722050 159090006056 289488767243292968 141906289967362 3848861155586 19265097448903424 5761445266577952 616899717105952 343731622434
546704308666859716 487893585065153542 489415167130509384 152982254363317262 324189516636095686 286066742397022348 90758284568626244 239298268501286990 196514071259067468 466853324654813188

出力例 3

No

入力例 4

12
377856130335197936 431521378213127644 96779183645318069 27884533191077098 175463727782485301 417798313887768470 882780118961099438 695638305642195413 844098458810131862 714758857685818365 982440320392901313 58851425009165345
200247916520409945 1079265167001944511 228890967431065270 594413217207808713 799020374004987514 1064838643421037658 816982417931746301 59262707979926837 802875123164857614 244683246935893681 50108983568402635 248665965512365971

出力例 4

Yes