#abc171e. [abc171_e]Red Scarf

[abc171_e]Red Scarf

题目描述

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

每只 Snuke 猫都戴着一条红色的围巾,围巾上写着它们最喜欢的非负整数。

最近,它们学会了一种叫做异或(xor)的运算。

什么是异或?

对于 nn 个非负整数 x1,x2,ldots,xnx_1, x_2, \\ldots, x_n,它们的异或运算被定义如下:

  • 当将 $x_1~\\textrm{xor}~x_2~\\textrm{xor}~\\ldots~\\textrm{xor}~x_n$ 以二进制表示时,第 2k2^k 位(kgeq0k \\geq 0)的数字为 11,当且仅当 x1,x2,ldots,xnx_1, x_2, \\ldots, x_n 中二进制表示中第 2k2^k 位为 11 的数字个数为奇数,否则为 00

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

它们想要快速使用这种操作,所以每只猫都计算了除自己围巾上的整数外其他围巾上整数的异或结果。

我们知道 Snuke 猫 ii 计算的异或结果,即除了 Snuke 猫 ii 的围巾上整数以外的所有围巾上整数的异或结果是 aia_i。根据这个信息,恢复每只 Snuke 猫围巾上的整数。

约束条件

  • 输入中的所有值都是整数。
  • 2leqNleq2000002 \\leq N \\leq 200000
  • NN偶数
  • 0leqaileq1090 \\leq a_i \\leq 10^9
  • 存在一组整数使得它们与给定的信息一致。

输入

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

NN a1a_1 a2a_2 ldots\\ldots aNa_N

输出

以空格分隔的 NN 个整数的一行。

从左边开始的第 ii 个整数代表 Snuke 猫 ii 围巾上写着的整数。

如果有多个可能的解,你可以输出其中任意一个。


示例输入1

4
20 11 9 24

示例输出1

26 5 7 22
  • 5 textrmxor 7 textrmxor 22=205~\\textrm{xor}~7~\\textrm{xor}~22 = 20
  • 26 textrmxor 7 textrmxor 22=1126~\\textrm{xor}~7~\\textrm{xor}~22 = 11
  • 26 textrmxor 5 textrmxor 22=926~\\textrm{xor}~5~\\textrm{xor}~22 = 9
  • 26 textrmxor 5 textrmxor 7=2426~\\textrm{xor}~5~\\textrm{xor}~7 = 24

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