問題文

長さNNの数列AAが与えられます。k=1,2,,Nk = 1,2,\cdots,Nについて次の問題を解いて答えを出力してください。

AAの要素から添え字の異なるkk個の要素を取り出す方法すべてについて、取り出した要素のbitwise xorを計算し、それらの和をmod998244353mod998244353で求めてください。

制約

  • 1N1051 \leq N \leq 10^5
  • 0Ai<2300 \leq A_{i} \lt2^{30}

入力

入力はすべて整数である。

N
A_1 A_2 ... A_N

出力

k=1,2,,Nk = 1,2,\cdots,Nに対する答えをXkX_kとして下のように空白区切りで出力してください。

X_1 X_2 ... X_N

サンプル

入力1
3
1 2 3
出力1
6 6 0

AAの要素から添え字の異なる11個の要素を取り出す方法は{1}\{1\},{2}\{2\},{3}\{3\}33通りで、取り出した要素のbitwise xorはそれぞれ1,2,31,2,3です。したがってk=1k = 1に対する答えは1+2+3=61 + 2 + 3 = 6です。

AAの要素から添え字の異なる個の要素を取り出す方法は{1,2}\{1,2\},{1,3}\{1,3\},{2,3}\{2,3\}33通りで、取り出した要素のbitwise xorはそれぞれ3,2,13,2,1です。したがってk=2k = 2に対する答えは3+2+1=63 + 2 + 1 = 6です。

AAの要素から添え字の異なる個の要素を取り出す方法は{1,2,3}\{1,2,3\}11通りで、取り出した要素のbitwise xorは00です。したがってk=3k = 3に対する答えは00です。

入力2
5
3 1 4 1 5
出力2
14 36 40 20 2
入力3
15
216772463 773059972 511530910 457632683 1007506860 936312247 447222115 723492740 564986817 9051227 703939751 882747237 567501421 586217631 660927401
出力3
64702298 451229420 580632965 220233611 157072596 351203809 294969646 655771502 526786041 628046144 26367998 127946910 811551646 124077043 96425249

提出


Go (1.21)