AT_jsc2023_final_d Two Xor
Description
長さ $ N $ の非負整数列 $ A=(A_1,A_2,\cdots,A_N) $ が与えられます.
あなたは,次の操作を**高々 $ 2 $ 回**行うことができます. なお, $ \oplus $ はビット単位 $ \mathrm{XOR} $ 演算を表します.
- 非負整数 $ X $ を自由に選ぶ. その後,各 $ i=1,2,\cdots,N $ について, $ A_i $ の値を据え置くかもしくは $ A_i \oplus X $ で置き換える.
操作後の $ A $ の要素の最大値としてあり得る最小値を求めてください.
ビット単位 $ \mathrm{XOR} $ 演算とは 非負整数 $ A, B $ のビット単位 $ \mathrm{XOR} $ 、 $ A \oplus B $ は、以下のように定義されます。
- $ A \oplus B $ を二進表記した際の $ 2^k $ ( $ k \geq 0 $ ) の位の数は、 $ A, B $ を二進表記した際の $ 2^k $ の位の数のうち一方のみが $ 1 $ であれば $ 1 $ 、そうでなければ $ 0 $ である。
例えば、 $ 3 \oplus 5 = 6 $ となります (二進表記すると: $ 011 \oplus 101 = 110 $ )。
一般に $ k $ 個の非負整数 $ p_1, p_2, p_3, \dots, p_k $ のビット単位 $ \mathrm{XOR} $ は $ (\dots ((p_1 \oplus p_2) \oplus p_3) \oplus \dots \oplus p_k) $ と定義され、これは $ p_1, p_2, p_3, \dots, p_k $ の順番によらないことが証明できます。
Input Format
入力は以下の形式で標準入力から与えられる.
> $ N $ $ A_1 $ $ A_2 $ $ \cdots $ $ A_N $
Output Format
答えを出力せよ.
Explanation/Hint
### Sample Explanation 1
例えば,以下のような操作が考えられます.
- $ X=1 $ を選ぶ.
- $ i=2 $ について, $ A_2 $ の値を $ 1 \oplus 1=0 $ で置き換える.
- $ i=4 $ について, $ A_4 $ の値を $ 3 \oplus 1=2 $ で置き換える.
- $ X=2 $ を選ぶ.
- $ i=3 $ について, $ A_3 $ の値を $ 2 \oplus 2=0 $ で置き換える.
- $ i=4 $ について, $ A_4 $ の値を $ 2 \oplus 2=0 $ で置き換える.
このとき,操作後の $ A $ の要素の最大値は $ 0 $ になります. これは明らかに達成可能な最小値なので,答えは $ 0 $ です.
### Constraints
- $ 1 \leq N \leq 2^{18} $
- $ 0 \leq A_i < 2^{18} $
- 入力される値はすべて整数.