#CF2131E. 相邻 XOR

相邻 XOR

E. 相邻 XOR

每次测试的时间限制:22
每次测试的内存限制:256256 兆字节

你有一个长度为 nn 的数组 aa
对每个下标 ii 满足 1i<n1 \le i < n,你最多可以进行一次如下操作:

aia_i 赋值为 aiai+1a_i \oplus a_{i+1},其中 \oplus 表示按位异或运算。

你可以选择这些下标,并按照任意顺序执行操作。

给定另一个长度为 nn 的数组 bb,判断是否可以将 aa 变换为 bb


输入
每个测试包含多个测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4)——测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn2n21052 \le n \le 2 \cdot 10^5)。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n0ai<2300 \le a_i < 2^{30})。

第三行包含 nn 个整数 b1,b2,,bnb_1, b_2, \dots, b_n0bi<2300 \le b_i < 2^{30})。

保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5


输出
对于每个测试用例,如果可以将 aa 变换为 bb,输出 "YES",否则输出 "NO"。你可以以任意大小写输出答案(例如 "yEs""yes""Yes""YES" 都会被识别为肯定回答)。


示例

输入

7
5
1 2 3 4 5
3 2 7 1 5
3
0 0 1
1 0 1
3
0 0 1
0 0 0
4
0 0 1 2
1 3 3 2
6
1 1 4 5 1 4
0 5 4 5 5 4
3
0 1 2
2 3 2
2
10 10
11 10

输出

YES
NO
NO
NO
YES
NO
NO

说明
在第一个测试用例中,可以按以下顺序执行操作:

  1. 选择 i=3i = 3,令 a3:=a3a4=7a_3 := a_3 \oplus a_4 = 7,数组变为 [1,2,7,4,5][1, 2, 7, 4, 5]
  2. 选择 i=4i = 4,令 a4:=a4a5=1a_4 := a_4 \oplus a_5 = 1,数组变为 [1,2,7,1,5][1, 2, 7, 1, 5]
  3. 选择 i=1i = 1,令 a1:=a1a2=3a_1 := a_1 \oplus a_2 = 3,数组变为 [3,2,7,1,5][3, 2, 7, 1, 5]