#CF2115D. 水母与勿忘我

水母与勿忘我

D. 水母与勿忘我

每次测试的时间限制:2 秒
每次测试的内存限制:1024 MB

水母和花花在玩一个游戏。

游戏包含两个长度为 nn 的整数数组 a1,a2,,ana_1, a_2, \dots, a_nb1,b2,,bnb_1, b_2, \dots, b_n,以及一个长度为 nn 的二进制字符串 c1c2cnc_1 c_2 \dots c_n

此外,还有一个整数 xx,初始化为 00

游戏进行 nn 轮。对于 i=1,2,,ni = 1, 2, \dots, n,每一轮的流程如下:

  • 如果 ci=0c_i = 0,则当前回合的活跃玩家是水母;否则如果 ci=1c_i = 1,则活跃玩家是花花。
  • 活跃玩家必须选择以下操作之一执行:
    • xx 设为 xaix \oplus a_i
    • xx 设为 xbix \oplus b_i
      这里 \oplus 表示按位异或运算。

水母希望 nn 轮游戏结束后 xx 的最终值最小,而花花希望它最大。

如果两个玩家都采取最优策略,求游戏结束后 xx 的最终值。


输入格式
每个测试点包含多个测试用例。第一行包含整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。
接下来每个测试用例的描述如下:

  • 第一行一个整数 nn1n1051 \le n \le 10^5)—— 游戏轮数。
  • 第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n0ai<2600 \le a_i < 2^{60})。
  • 第三行包含 nn 个整数 b1,b2,,bnb_1, b_2, \dots, b_n0bi<2600 \le b_i < 2^{60})。
  • 第四行是一个长度为 nn 的二进制字符串 cc

数据保证所有测试用例的 nn 之和不超过 10510^5


输出格式
对于每个测试用例,输出一个整数 —— 游戏结束后 xx 的最终值。


输入样例

5
1
0
2
0
2
12 2
13 3
11
3
6 1 2
6 2 3
010
4
1 12 7 2
4 14 4 2
0111
9
0 5 10 6 6 2 6 2 11
7 3 15 3 6 7 6 7 8
110010010

输出样例

0
15
6
11
5

样例解释

在第一个测试用例中,只有一轮,且活跃玩家是水母。因此她会选择 a1a_1,最终 xx00

在第二个测试用例中,两轮的活跃玩家都是花花。她选择 a1a_1b2b_2,最终 xxa1b2=15a_1 \oplus b_2 = 15。花花也可以选择 b1b_1a2a_2,得到 a2b1=15a_2 \oplus b_1 = 15

在第三个测试用例中,第一轮 a1=b1a_1 = b_1,所以水母的选择不影响结果。

  • 第二轮:如果花花选择 a2a_2,则 xx 变为 77;第三轮水母会选择 b3b_3,最终 x=4x = 4
  • 如果花花选择 b2b_2,则 xx 变为 44;第三轮水母会选择 a3a_3,最终 x=6x = 6
    花花想最大化最终 xx,所以她会在第二轮选 b2b_2。因此最终 x=6x = 6