問題文
長さ N の 0 以上の整数からなる数列 A1,A2,ldots,AN が与えられます。各 k=1,2,ldots,N に対して
- X=A1 rmxor A2 rmxor ldots rmxor Ak として、
- (A1 rmxor X)+(A2 rmxor X)+ldots+(Ak rmxor X) の値を出力する
ようなプログラムを作ってください。X の定義が k によって変化することに注意してください。
なお、整数 c1,c2,ldots,cm の rmxor は以下のように定義されます:
- 求める rmxor の値を X とおいて、
- X を二進数表記したときの 2k (k は 0 以上の整数) の位の値は、c1,c2,ldots,cm のうち、二進数表記したときの 2k の位の値が 1 となるものが奇数個ならば 1、偶数個ならば 0 となる。
制約
- 1leNle3times105
- 0leAi<230
- 与えられる入力はすべて整数です。
入力
入力は以下の形式で標準入力から与えられます。
N
A1 A2 ldots AN
出力
各 k=1,2,ldots,N に対する答えを一行ずつ出力してください。
入力例 1
3
7 5 3
出力例 1
0
12
12
- k=1 のとき、X=7 なので、A1 rmxor X=0 となります。
- k=2 のとき、X=7 rmxor 5=2 なので、A1 rmxor X=5、A2 rmxor X=7 より、合計値は 12 になります。
- k=3 のとき、X=7 rmxor 5 rmxor 3=1 なので、A1 rmxor X=6、A2 rmxor X=4、A3 rmxor X=2 より、合計値は 12 になります。
入力例 2
7
12 42 61 31 34 53 17
出力例 2
0
54
110
138
142
233
252