CF1721D Maximum AND

题目描述

给出两个长度为 $n$ 的数组 $a,b$ ,规定 $f(a,b)$ 表示以下操作: 1. 创建一个长度为 $n$ 的 $c$ 数组,满足 $c_i=a_i \oplus b_i$ (此处的 $\oplus$ 表示[按位异或](https://baike.baidu.com/item/%E5%BC%82%E6%88%96/10993677?fr=aladdin))。 2. 则 $f(a, b) = c_1\space\& c_2\space\& \cdots \& c_n$。 你可以将 $b$ 数组进行任意的排列(包括保留原始情况),试求出最大的 $f(a,b)$ 。

输入格式

第一行一个 $t\ (1\le t \le 10^4)$ ,表示数据组数。 对于每组数据: 第一行一个 $n\ (1 \le n \le 10^5)$ ,表示 $a,b$ 数组的长度。 第二行 $n$ 个自然数 $a_1,a_2......a_n(1 \le a_i \lt 2^{30})$ 第三行 $n$ 个自然数 $b_1,b_2......b_n(1 \le b_i \lt 2^{30})$ 数据保证单个数据测试点内,所有 $n$ 之和不超过 $10^5$.

输出格式

对于每一个测试点,一行一个正整数表示 $f(a,b)$ 的最大值。