#cpsco2019s3e. [cpsco2019_s3_e]Enumerate Xor Sum

[cpsco2019_s3_e]Enumerate Xor Sum

問題文

長さ NN00 以上の整数からなる数列 A1,A2,ldots,ANA_1, A_2, \\ldots, A_N が与えられます。各 k=1,2,ldots,Nk = 1, 2, \\ldots, N に対して

  • X=A1X = A_1 rmxor{\\rm xor} A2A_2 rmxor{\\rm xor} ldots\\ldots rmxor{\\rm xor} AkA_k として、
  • (A1(A_1 rmxor{\\rm xor} X)+(A2X) + (A_2 rmxor{\\rm xor} X)+ldots+(AkX) + \\ldots + (A_k rmxor{\\rm xor} X)X) の値を出力する

ようなプログラムを作ってください。XX の定義が kk によって変化することに注意してください。

なお、整数 c1,c2,ldots,cmc_1, c_2, \\ldots, c_mrmxor{\\rm xor} は以下のように定義されます:

  • 求める rmxor{\\rm xor} の値を XX とおいて、
  • XX を二進数表記したときの 2k2^k (kk00 以上の整数) の位の値は、c1,c2,ldots,cmc_1, c_2, \\ldots, c_m のうち、二進数表記したときの 2k2^k の位の値が 11 となるものが奇数個ならば 11、偶数個ならば 00 となる。

制約

  • 1leNle3times1051 \\le N \\le 3 \\times 10^5
  • 0leAi<2300 \\le A_i < 2^{30}
  • 与えられる入力はすべて整数です。

入力

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

NN A1A_1 A2A_2 ldots\\ldots ANA_N

出力

k=1,2,ldots,Nk = 1, 2, \\ldots, N に対する答えを一行ずつ出力してください。


入力例 1

3
7 5 3

出力例 1

0
12
12
  • k=1k = 1 のとき、X=7X = 7 なので、A1A_1 rmxor{\\rm xor} X=0X = 0 となります。
  • k=2k = 2 のとき、X=7X = 7 rmxor{\\rm xor} 5=25 = 2 なので、A1A_1 rmxor{\\rm xor} X=5X = 5A2A_{2} rmxor{\\rm xor} X=7X = 7 より、合計値は 1212 になります。
  • k=3k = 3 のとき、X=7X = 7 rmxor{\\rm xor} 55 rmxor{\\rm xor} 3=13 = 1 なので、A1A_1 rmxor{\\rm xor} X=6X = 6A2A_{2} rmxor{\\rm xor} X=4X = 4A3A_{3} rmxor{\\rm xor} X=2X = 2 より、合計値は 1212 になります。

入力例 2

7
12 42 61 31 34 53 17

出力例 2

0
54
110
138
142
233
252