#HT1042. 数列异或

数列异或

题目描述

给定一个长度为 nn 的整数数列 a1,a2,,ana_1, a_2, \ldots, a_n,你需要寻找一个整数使得 max1in(aiX)\max\limits_{1 \le i \le n}(a_i \oplus X) 最小。其中 \oplus 是异或运算符(异或运算的解释)。

注:XX 必须大于等于 00

输入格式

第一行,一个整数 n(1n105)n(1 \le n \le 10^5)

第二行,nn 个整数 a1,a2,,an(0ai<230)a_1, a_2, \ldots, a_n(0 \le a_i \lt 2^{30}),两两之间以一个空格分隔。

输出格式

一个整数,表示 max1in(aiX)\max\limits_{1 \le i \le n}(a_i \oplus X) 的最小值。

样例

3
1 2 3
2
2
1 5
4
6
20 16 17 18 23 27
8

样例解释

  • 样例1中,可选 X=3X=3
  • 样例2中,可选 X=5X=5
  • 样例3中,可选 X=19X=19

数据范围

  • 对于 20%20\% 的数据,1n20,1ai1001 \le n \le 20, 1 \le a_i \le 100
  • 对于 40%40\% 的数据,1n1000,1ai<2101 \le n \le 1000, 1 \le a_i \lt 2^{10}
  • 对于 60%60\% 的数据,1n104,1ai<2201 \le n \le 10^4, 1 \le a_i \lt 2^{20}
  • 对于 100%100\% 的数据,1n105,1ai<2301 \le n \le 10^5, 1 \le a_i \lt 2^{30}