#abc171eL. 例题2.1.3 异或运算求元素

例题2.1.3 异或运算求元素

AI翻译,公式、数字等可能存在问题,如果存在问题,请点击上面查看英文版

分数:500500

题目描述

NN 只 Snuke Cats,编号为 1,2,,N1, 2, \ldots, N,其中 NN偶数

每只 Snuke Cat 都戴着一条红围巾,上面写着他最喜欢的非负整数。

最近,他们学到了一个叫 xor(异或)的操作。

什么是 xor?

对于 nn 个非负整数 x_1,x_2,,x_nx\_1, x\_2, \ldots, x\_n,它们的 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$ 用二进制表示时,第 2k2^k 位(k0k \geq 0)的值为 11,如果 x_1,x_2,,x_nx\_1, x\_2, \ldots, x\_n 中二进制表示在第 2k2^k 位上有 11 的整数个数为奇数,否则为 00

例如,3xor˜5˜=63\~\textrm{xor}\~5 = 6

他们想要快速使用这个操作,所以每个人都计算了除了自己围巾上的数字外其他数字的 xor。

我们知道 Snuke Cat ii 计算的 xor,即除了 Snuke Cat ii 围巾上的数字外其他数字的 xor 是 a_ia\_i。利用这些信息,还原每个 Snuke Cat 围巾上的数字。

约束条件

  • 输入的所有值都是整数。

  • 2N2000002 \leq N \leq 200000

  • NN偶数

  • 0a_i1090 \leq a\_i \leq 10^9

  • 存在一组整数满足给定的信息。


输入

从标准输入以以下格式给出输入:

NN

a1a_1 a2a_2 \ldots aNa_N

输出

打印一行,包含 NN 个用空格分隔的整数。

从左到右的第 ii 个整数应表示 Snuke Cat ii 围巾上的数字。

如果有多个可能的解决方案,您可以打印其中的任何一个。


样例输入 1

4

20 11 9 24

样例输出 1

26 5 7 22

  • 5xor˜7˜xor˜2˜2=205\~\textrm{xor}\~7\~\textrm{xor}\~22 = 20

  • 26xor˜7˜xor˜2˜2=1126\~\textrm{xor}\~7\~\textrm{xor}\~22 = 11

  • 26xor˜5˜xor˜2˜2=926\~\textrm{xor}\~5\~\textrm{xor}\~22 = 9

  • 26xor˜5˜xor˜7˜=2426\~\textrm{xor}\~5\~\textrm{xor}\~7 = 24

因此,此输出与给定的信息一致。