AT_arc205_e [ARC205E] Subset Product Problem

Description

長さ $ N $ の非負整数列 $ A=(A_1,A_2,\ldots,A_N) $ が与えられます。 $ k=1,2,\ldots,N $ に対し以下の問題を解いてください。 - $ A_i $ と $ A_k $ のビット単位 $ \mathrm{OR} $ 演算が $ A_k $ となるような $ 1 $ 以上 $ k $ 以下の整数 $ i $ 全てに対する $ A_i $ の **総積** を $ 998244353 $ で割ったあまりを求めてください。 ビット単位 $ \mathrm{OR} $ 演算とは 非負整数 $ X,Y $ のビット単位 $ \mathrm{OR} $ 、 $ X\ \mathrm{OR}\ Y $ は以下のように定義されます。 - $ X\ \mathrm{OR}\ Y $ を二進表記した際の $ 2^k $ $ (k \geq 0) $ の位の数は、 $ X,Y $ を二進表記した際の $ 2^k $ の位の数のうち少なくとも片方が $ 1 $ であれば $ 1 $ 、そうでなければ $ 0 $ である。 例えば、 $ 3\ \mathrm{OR}\ 5 = 7 $ となります(二進表記すると: $ 011\ \mathrm{OR}\ 101 = 111 $ )。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $

Output Format

$ N $ 行出力せよ。 $ i $ 行目 $ (1\le i\le N) $ には、 $ k=i $ の場合の答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 - $ k=1 $ のとき: $ i=1 $ に対し $ A_i $ と $ A_k $ のビット単位 $ \mathrm{OR} $ 演算は $ 1 $ になります。したがって、 $ k=1 $ の場合の答えは $ A_1=1 $ です。 - $ k=2 $ のとき: $ i=1,2 $ に対し $ A_i $ と $ A_k $ のビット単位 $ \mathrm{OR} $ 演算はそれぞれ $ 3,2 $ になります。したがって、 $ k=2 $ の場合の答えは $ A_2=2 $ です。 - $ k=3 $ のとき: $ i=1,2,3 $ に対し $ A_i $ と $ A_k $ のビット単位 $ \mathrm{OR} $ 演算は全て $ 3 $ になります。したがって、 $ k=3 $ の場合の答えは $ A_1\times A_2\times A_3=6 $ です。 - $ k=4 $ のとき: $ i=1,2,3,4 $ に対し $ A_i $ と $ A_k $ のビット単位 $ \mathrm{OR} $ 演算はそれぞれ $ 5,7,7,5 $ になります。したがって、 $ k=4 $ の場合の答えは $ A_1\times A_4=5 $ です。 ### Constraints - $ 1\le N\le 4\times 10^5 $ - $ 0\le A_i < 2^{20} $ - 入力される値は全て整数