分析
对于异或,有性质 \(a \oplus b = c,a \oplus c =b,a \oplus a =0\)。则对于 \(a_i \oplus a_{i+1}\),其表示的结果就是 \(b_{i} \oplus b_{i+2}\)。做一个前缀异或和,就能够得到 \(b_1\) 与 \(b_2,b_3,\dots,b_n\) 的异或结果。
考虑枚举 \(b_1\),因为在有解的情况下 \(b_1 \oplus b_i\) 的结果都互不相同。所以我们只需要找到一个 \(j\),使 \(b_1 \oplus b_j\) 最大。若这个值 \(\ge n\),则不满足;若这个值 \(\le n-1\),则 \(b_1\) 枚举的这个值满足,输出此时的 \(b\) 即可。
找最大异或对,使用 Trie 就可以了。