C - ORXOR Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 300

問題文

長さ N の数列 A が与えられます。
この数列を、1 つ以上の空でない連続した区間に分けます。
その後、分けた各区間で、区間内の数のビット単位 \mathrm{OR} を計算します。
こうして得られた全ての値のビット単位 \mathrm{XOR} として考えられる最小値を求めてください。

ビット単位 \mathrm{OR} 演算とは

整数 A, B のビット単位 \mathrm{OR}A\ \mathrm{OR}\ B は以下のように定義されます。

  • A\ \mathrm{OR}\ B を二進表記した際の 2^k (k \geq 0) の位の数は、A, B を二進表記した際の 2^k の位の数のうち少なくとも片方が 1 であれば 1、そうでなければ 0 である。
例えば、3\ \mathrm{OR}\ 5 = 7 となります (二進表記すると: 011\ \mathrm{OR}\ 101 = 111)。
一般に k 個の整数 p_1, p_2, p_3, \dots, p_k のビット単位 \mathrm{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 の順番によらないことが証明できます。

ビット単位 \mathrm{XOR} 演算とは

整数 A, B のビット単位 \mathrm{XOR}A\ \mathrm{XOR}\ B は、以下のように定義されます。

  • A\ \mathrm{XOR}\ B を二進表記した際の 2^k (k \geq 0) の位の数は、A, B を二進表記した際の 2^k の位の数のうち一方のみが 1 であれば 1、そうでなければ 0 である。
例えば、3\ \mathrm{XOR}\ 5 = 6 となります (二進表記すると: 011\ \mathrm{XOR}\ 101 = 110)。
一般に k 個以上の整数 p_1, p_2, p_3, \dots, p_k のビット単位 \mathrm{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 の順番によらないことが証明できます。

制約

  • 1 \le N \le 20
  • 0 \le A_i \lt 2^{30}
  • 入力に含まれる値は全て整数である

入力

入力は以下の形式で標準入力から与えられる。

N
A_1 A_2 A_3 \dots A_N

出力

答えを出力せよ。


入力例 1

3
1 5 7

出力例 1

2

[1, 5, 7][1, 5][7]2 つの区間に分けると、それぞれの区間内の数のビット単位 \mathrm{OR}5, 7 となり、その \mathrm{XOR}2 です。
これより小さくすることはできないので、2 を出力します。


入力例 2

3
10 10 10

出力例 2

0

[10][10, 10] に分けるとよいです。


入力例 3

4
1 3 3 1

出力例 3

0

[1, 3][3, 1] に分けるとよいです。

Score : 300 points

Problem Statement

Given is a number sequence A of length N.
Let us divide this sequence into one or more non-empty contiguous intervals.
Then, for each of these intervals, let us compute the bitwise \mathrm{OR} of the numbers in it.
Find the minimum possible value of the bitwise \mathrm{XOR} of the values obtained in this way.

What is bitwise \mathrm{OR}?

The bitwise \mathrm{OR} of integers A and B, A\ \mathrm{OR}\ B, is defined as follows:

  • When A\ \mathrm{OR}\ B is written in base two, the digit in the 2^k's place (k \geq 0) is 1 if at least one of A and B is 1, and 0 otherwise.
For example, we have 3\ \mathrm{OR}\ 5 = 7 (in base two: 011\ \mathrm{OR}\ 101 = 111).
Generally, the bitwise \mathrm{OR} of k integers p_1, p_2, p_3, \dots, p_k is defined as (\dots ((p_1\ \mathrm{OR}\ p_2)\ \mathrm{OR}\ p_3)\ \mathrm{OR}\ \dots\ \mathrm{OR}\ p_k). We can prove that this value does not depend on the order of p_1, p_2, p_3, \dots p_k.

What is bitwise \mathrm{XOR}?

The bitwise \mathrm{XOR} of integers A and B, A\ \mathrm{XOR}\ B, is defined as follows:

  • When A\ \mathrm{XOR}\ B is written in base two, the digit in the 2^k's place (k \geq 0) is 1 if exactly one of A and B is 1, and 0 otherwise.
For example, we have 3\ \mathrm{XOR}\ 5 = 6 (in base two: 011\ \mathrm{XOR}\ 101 = 110).
Generally, the bitwise \mathrm{XOR} of k integers p_1, p_2, p_3, \dots, p_k is defined as (\dots ((p_1\ \mathrm{XOR}\ p_2)\ \mathrm{XOR}\ p_3)\ \mathrm{XOR}\ \dots\ \mathrm{XOR}\ p_k). We can prove that this value does not depend on the order of p_1, p_2, p_3, \dots p_k.

Constraints

  • 1 \le N \le 20
  • 0 \le A_i \lt 2^{30}
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

N
A_1 A_2 A_3 \dots A_N

Output

Print the answer.


Sample Input 1

3
1 5 7

Sample Output 1

2

If we divide [1, 5, 7] into [1, 5] and [7], their bitwise \mathrm{OR}s are 5 and 7, whose \mathrm{XOR} is 2.
It is impossible to get a smaller result, so we print 2.


Sample Input 2

3
10 10 10

Sample Output 2

0

We should divide this sequence into [10] and [10, 10].


Sample Input 3

4
1 3 3 1

Sample Output 3

0

We should divide this sequence into [1, 3] and [3, 1].