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} $
- 入力される値は全て整数