問題文

ファンタジーゲーム「クリスタルクロニクル」では、魔法石と呼ばれるアイテムが登場する。 魔法石は識別番号によって管理されており、識別番号は 00 以上 2N2^N 未満の整数である。 つまり、魔法石は全部で 2N2^N 種類存在する。

各魔法石 ii0i<2N0 \le i < 2^N)には 魔力値 cic_i が設定されている。

魔法使いは、この 2N2^N 種類の魔法石から好きな部分集合(空集合を含む)を選んで 魔法陣を構成する。魔法陣の 共鳴値 は、 選んだ全ての魔法石の識別番号の排他的論理和(XOR)で定まる。 何も選ばなかった場合の共鳴値は 00 とする。

各共鳴値 TT0T<2N0 \le T < 2^N)に対して、次の値を求めよ:

gT=S{0,1,,2N1}iSi=TiScig_T = \sum_{\substack{S \subseteq \{0, 1, \ldots, 2^N - 1\} \\ \bigoplus_{i \in S} i = T}} \prod_{i \in S} c_i

ただし、空集合の積は 11 とする。

答えは非常に大きくなりうるので、998244353998244353 で割った余りを出力せよ。

制約

  • 1N181 \le N \le 18
  • 0ci<9982443530 \le c_i < 9982443530i<2N0 \le i < 2^N
  • 入力はすべて整数

入力

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

NN
c0  c1  c2    c2N1c_0\; c_1\; c_2\; \ldots \; c_{2^N - 1}

出力

2N2^N 個の整数 g0, g1, , g2N1g_0,\ g_1,\ \ldots,\ g_{2^N - 1} を空白区切りで 1 行に出力せよ。

サンプル

入力1
2
1 2 3 4
出力1
50 28 22 20

N=2N=2 なので魔法石は 4 種類(識別番号 0,1,2,30, 1, 2, 3)、魔力値はそれぞれ 1,2,3,41, 2, 3, 4。 全 1616 通りの部分集合を列挙する:

部分集合XOR
{}\{\}0011
{0}\{0\}0011
{1}\{1\}1122
{2}\{2\}2233
{3}\{3\}3344
{0,1}\{0,1\}1122
{0,2}\{0,2\}2233
{0,3}\{0,3\}3344
{1,2}\{1,2\}3366
{1,3}\{1,3\}2288
{2,3}\{2,3\}111212
{0,1,2}\{0,1,2\}3366
{0,1,3}\{0,1,3\}2288
{0,2,3}\{0,2,3\}111212
{1,2,3}\{1,2,3\}002424
{0,1,2,3}\{0,1,2,3\}002424

各共鳴値ごとに積を合計:

  • g0=1+1+24+24=50g_0 = 1+1+24+24 = 50
  • g1=2+2+12+12=28g_1 = 2+2+12+12 = 28
  • g2=3+3+8+8=22g_2 = 3+3+8+8 = 22
  • g3=4+4+6+6=20g_3 = 4+4+6+6 = 20

提出


Go (1.21)