#AT1765. C - ORXOR

C - ORXOR

C - ORXOR

评分:300分

问题描述

给定一个长度为N的数字序列A。将这个序列分成一个或多个非空的连续区间。然后,对于这些区间中的每一个,计算其中数字的按位或(bitwise OR)。找到按这种方式得到的值的按位异或(bitwise XOR)的最小可能值。

什么是按位或(bitwise OR)?

整数A和B的按位或(bitwise OR)的定义如下:

  • 当 A 和 B 的按位或(bitwise OR)用二进制表示时,位于第$2^k$位上($k \geq 0$)的数字是1,如果A和B中至少有一个数字是1,否则是0。
例如,我们有 $3\ \mathrm{OR}\ 5 = 7$(二进制表示:$011\ \mathrm{OR}\ 101 = 111$)。
通常,$k$个整数$p_1, p_2, p_3, \dots, p_k$的按位或(bitwise OR)的定义是 $(\dots ((p_1\ \mathrm{OR}\ p_2)\ \mathrm{OR}\ p_3)\ \mathrm{OR}\ \dots\ \mathrm{OR}\ p_k)$。我们可以证明,这个值不依赖于$p_1, p_2, p_3, \dots p_k$的顺序。

什么是按位异或(bitwise XOR)?

整数A和B的按位异或(bitwise XOR)的定义如下:

  • 当 A 和 B 的按位异或(bitwise XOR)用二进制表示时,位于第$2^k$位上($k \geq 0$)的数字是1,当且仅当A和B中恰好有一个数字是1,否则是0。
例如,我们有 $3\ \mathrm{XOR}\ 5 = 6$(二进制表示:$011\ \mathrm{XOR}\ 101 = 110$)。
通常,$k$个整数$p_1, p_2, p_3, \dots, p_k$的按位异或(bitwise XOR)的定义是 $(\dots ((p_1\ \mathrm{XOR}\ p_2)\ \mathrm{XOR}\ p_3)\ \mathrm{XOR}\ \dots\ \mathrm{XOR}\ p_k)$。我们可以证明,这个值不依赖于$p_1, p_2, p_3, \dots p_k$的顺序。

约束条件

  • 1N201 \le N \le 20
  • 0Ai<2300 \le A_i \lt 2^{30}
  • 输入中的所有值都是整数。

输入

输入从标准输入读取,格式如下:

N
A_1 A_2 A_3 ... A_N

输出

输出答案。

示例

输入1

3
1 5 7

输出1

2

如果我们将[1,5,7][1, 5, 7]分成[1,5][1, 5][7][7],它们的按位或(bitwise OR)是5和7,它们的按位异或(bitwise XOR)是2。我们无法获得更小的结果,因此我们输出2。

输入2

3
10 10 10

输出2

0

我们应该将这个序列分成[10][10][10,10][10, 10]

输入3

4
1 3 3 1

输出3

0

我们应该将这个序列分成[1,3][1, 3][3,1][3, 1]