#B3908. [语言月赛 202312] 异或构造题?

    ID: 11212 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 显示难度入门 上传者: 标签>2023O2优化位运算循环结构语言月赛

[语言月赛 202312] 异或构造题?

题目描述

给定 nn 个非负整数 a1,a2,⋯ ,ana _ 1, a _ 2, \cdots, a _ n,你需要确定一个非负整数 xx,使得 $a _ 1 \oplus a _ 2 \oplus \cdots \oplus a _ n \oplus x$ 最小。

你需要计算 xx 和 $a _ 1 \oplus a _ 2 \oplus \cdots \oplus a _ n \oplus x$。

其中 ⊕\oplus 代表异或,x⊕yx \oplus y 在 C++ 中可表示为 x ^ y。 对于两个非负整数 x,yx,y,它们的异或是指,将它们作为二进制数,对二进制表示中的每一位进行如下运算得到的结果:

  • xx 和 yy 的这一位上不同时,结果的这一位为 11;
  • xx 和 yy 的这一位上相同时,结果的这一位为 00。

例如:0⊕0=00\oplus 0=0,1⊕0=11\oplus 0=1,0⊕1=10\oplus 1=1,1⊕1=01\oplus 1=0。

输入格式

输入共两行。

第一行一个整数 nn,代表序列 aa 的长度。
第二行 nn 个整数 a1,a2,⋯ ,ana _ 1, a _ 2, \cdots, a _ n,代表序列 aa。

输出格式

输出共一行两个整数 xx 和 $a _ 1 \oplus a _ 2 \oplus \cdots \oplus a _ n \oplus x$。

2
1 2
3 0
2
7 7
0 0

提示

数据规模与约定

对于 100%100\% 的数据,1≤n≤1061 \leq n \leq 10 ^ 6,0≤ai≤10180 \leq a _ i \leq 10 ^ {18}。

测试点 nn aia _ i 特殊性质
11 =1= 1 ≤103\leq 10 ^ 3 无
22 =2= 2 a1=a2a _ 1 = a _ 2
3∼43 \sim 4 无
55 ≤103\leq 10 ^ 3 =0= 0
6∼86 \sim 8 ≤103\leq 10 ^ 3
9∼119 \sim 11 ≤106\leq 10 ^ 6
12∼1312 \sim 13 ≤1\leq 1
14∼2014 \sim 20 ≤1018\leq 10 ^ {18}