训练营查找

题目描述

给定一个长度为 nn 的非负整数序列:

a1,a2,,ana_1,a_2,\ldots,a_n

你需要找到一个非负整数 xx,使得下面这个值尽可能小:

a1a2anxa_1\oplus a_2\oplus\cdots\oplus a_n\oplus x

其中 \oplus 表示按位异或运算。

你需要输出两个数:

  • 你选择的 xx

  • 最小的异或结果 a1a2anxa_1\oplus a_2\oplus\cdots\oplus a_n\oplus x

异或运算可以理解为:把两个数写成二进制后,逐位比较:

  • 如果这一位不同,结果这一位为 11

  • 如果这一位相同,结果这一位为 00

例如:

  • 00=00\oplus0=0

  • 10=11\oplus0=1

  • 01=10\oplus1=1

  • 11=01\oplus1=0

输入格式

输入共两行。

第一行输入一个整数 nn,表示序列长度。

第二行输入 nn 个非负整数 a1,a2,,ana_1,a_2,\ldots,a_n

输出格式

输出一行两个整数,分别表示:

  • 选择的 xx

  • 最小的异或结果。

样例输入 #1

2
1 2

样例输出 #1

3 0

样例输入 #2

2
7 7

样例输出 #2

0 0

样例说明

对于样例 #1:

12=31\oplus2=3

如果选择 x=3x=3,则:

123=01\oplus2\oplus3=0

因此输出:

3 0

对于样例 #2:

77=07\oplus7=0

此时选择 x=0x=0,最终结果已经为 00

数据范围

对于 100%100\% 的数据,保证:1n1061\le n\le10^60ai10180\le a_i\le10^{18}

测试点 nn aia_i 特殊性质
11 =1=1 103\le10^3
22 =2=2 a1=a2a_1=a_2
343\sim4
55 103\le10^3 =0=0
686\sim8 103\le10^3
9119\sim11 106\le10^6
121312\sim13 1\le1
142014\sim20 1018\le10^{18}