该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
训练营查找
题目描述
给定一个长度为 n 的非负整数序列:
a1,a2,…,an
你需要找到一个非负整数 x,使得下面这个值尽可能小:
a1⊕a2⊕⋯⊕an⊕x
其中 ⊕ 表示按位异或运算。
你需要输出两个数:
异或运算可以理解为:把两个数写成二进制后,逐位比较:
-
如果这一位不同,结果这一位为 1;
-
如果这一位相同,结果这一位为 0。
例如:
-
0⊕0=0
-
1⊕0=1
-
0⊕1=1
-
1⊕1=0
输入格式
输入共两行。
第一行输入一个整数 n,表示序列长度。
第二行输入 n 个非负整数 a1,a2,…,an。
输出格式
输出一行两个整数,分别表示:
样例输入 #1
2
1 2
样例输出 #1
3 0
样例输入 #2
2
7 7
样例输出 #2
0 0
样例说明
对于样例 #1:
1⊕2=3
如果选择 x=3,则:
1⊕2⊕3=0
因此输出:
3 0
对于样例 #2:
7⊕7=0
此时选择 x=0,最终结果已经为 0。
数据范围
对于 100% 的数据,保证:1≤n≤106,0≤ai≤1018。
| 测试点 |
n |
ai |
特殊性质 |
| 1 |
=1 |
≤103 |
无 |
| 2 |
=2 |
a1=a2 |
| 3∼4 |
无 |
| 5 |
≤103 |
=0 |
| 6∼8 |
≤103 |
| 9∼11 |
≤106 |
| 12∼13 |
≤1 |
| 14∼20 |
≤1018 |