Red Scarf
题目描述
有 N 只 Snuke 猫,编号为 1,2,…,N,其中 N 为 偶数。
每只 Snuke 猫戴着一条红色围巾,围巾上写着它喜欢的非负整数。
最近,他们学会了称为 xor(异或)的运算。
什么是 xor?
对于 n 个非负整数 x1,x2,…,xn,它们的 xor,$x_1~\textrm{xor}~x_2~\textrm{xor}~\ldots~\textrm{xor}~x_n$ 定义如下:
当 $x_1~\textrm{xor}~x_2~\textrm{xor}~\ldots~\textrm{xor}~x_n$ 以二进制表示时,2k 位(k≥0)的数字为 1 当且仅当在 x1,x2,…,xn 中,二进制表示在 2k 位上为 1 的整数个数为奇数;若该计数为偶数则该位为 0。
例如,3 xor 5=6。
他们希望能快速使用此运算,所以每个人都计算了不包含自己围巾的那些整数的 xor。
我们知道第 $i$ 只 Snuke 猫计算的 xor,即除第 $i$ 只猫的围巾外其它围巾上写的整数的 xor 为 $a_i$。
利用这些信息,恢复每只 Snuke 猫围巾上写的整数。
输入格式
标准输入的格式如下:
N
a1 a2 … aN
输出格式
打印一行包含用空格分隔的 N 个整数。
从左起第 i 个整数应表示写在第 i 只 Snuke 猫围巾上的整数。
如果存在多个可能的解,可以输出其中任意一个。
4
20 11 9 24
26 5 7 22
提示
输入中的所有数值均为整数。
2≤N≤200000
N 为 偶数。
0≤ai≤109
存在一组围巾上的整数与给定信息一致。5 xor 7 xor 22=20
26 xor 7 xor 22=11
26 xor 5 xor 22=9
26 xor 5 xor 7=24
因此,该输出与给定信息一致。
标签: AtCoder|abc171E
来源
AtCoder|abc171E