#abc171e. [abc171_e]Red Scarf

[abc171_e]Red Scarf

問題文

猫のすぬけくんが N(textbf偶数)N (\\textbf{偶数}) 匹います。各すぬけくんには 1,2,ldots,N1, 2, \\ldots, N の番号が振られています。

各すぬけくんは首に赤いスカーフを巻いており、スカーフにはそのすぬけくんが一番好きな非負整数が 11 つ書き込まれています。

すぬけくんたちは最近、整数の xor(排他的論理和)と呼ばれる演算を覚えました。

xor とは

nn 個の非負整数 x1,x2,ldots,xnx_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$ を二進表記した際の 2k(kgeq0)2^k(k \\geq 0) の位の数は、x1,x2,ldots,xnx_1,x_2, \\ldots, x_n のうち、二進表記した際の 2k(kgeq0)2^k(k \\geq 0) の位の数が 11 となるものの個数が奇数ならば 11、そうでなければ 00 となる。

例えば、3 textrmxor 5=63~\\textrm{xor}~5 = 6 となります。

早速この演算を使いたくなったすぬけくんたちは、自分以外のすぬけくんのスカーフに書かれた整数の xor を計算することにしました。

番号 ii が振られたすぬけくんが計算した、自分以外のすぬけくんのスカーフに書かれた整数の xor が aia_i であることが分かっています。 この情報を元に、各すぬけくんのスカーフに書かれた整数を特定してください。

制約

  • 入力はすべて整数である
  • 2leqNleq2000002 \\leq N \\leq 200000
  • NNtextbf偶数\\textbf{偶数}
  • 0leqaileq1090 \\leq a_i \\leq 10^9
  • 与えられた情報と整合するようなスカーフ上の整数の組合せが存在する

入力

入力は以下の形式で標準入力から与えられる。

NN a1a_1 a2a_2 ldots\\ldots aNa_N

出力

11 行に NN 個の整数を空白区切りで出力せよ。

このうち左から ii 番目の整数は、番号 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

より、この出力は与えられた情報と整合します。