題目名字是吸引你點進來的~~~
JOHNKRAM 最近在研究圖論。今天他遇到了這樣一道題:給一張有向圖,保證沒有重邊和自環。求把這張圖的強連通分量縮成點之後,有多少個點入度為 $0$。
JOHNKRAM 使用 tarjan 演算法輕而易舉地切掉了這道題。但他發現有很多人程式碼寫得比他短多了,於是他要來了程式,結果發現這個程式是列印 $1$ 的 = =。難道隨機資料真的這麼水嗎?於是他隨機生成了很多張有向圖,結果他發現答案真的全是 $1$ = =。於是他更改了隨機生成的方式,只生成每個強連通分量大小都屬於某個集合 $S$ 的有向圖,結果答案立刻就變大了。
現在 JOHNKRAM 把那些人都卡掉了,但他想證明一下資料的強度,所以他提出了一個問題:對於所有帶標號點數為 $i(1\leq i\leq n)$ 的每個強連通分量大小都屬於集合 $S$ 的有向圖,之前問題的答案的期望是多少?他發現自己不會證明了,於是他來向你請教。
輸入格式
輸入第一行包含 $1$ 個正整數 $n$,表示生成的有向圖的最大點數。
接下來 $n$ 行,第 $i$ 行包含一個整數 $s_i$。如果 $s_i=1$,則 $i$ 在集合 $S$ 中,否則 $i$ 不在集合 $S$ 中。
輸出格式
共輸出 $n$ 行,每行包含一個整數。第 $i$ 行的整數表示對於所有帶標號點數為 $i(1\leq i\leq n)$ 的每個強連通分量大小都屬於集合 $S$ 的有向圖,之前問題的答案的期望 $mod\ 998244353$ 的結果,如果沒有合法的有向圖則輸出 $0$。設期望值為 $a/b$($a$ 和 $b$ 為互質的正整數),你輸出的整數為 $x$,則你需要保證 $bx\equiv a(mod\ 998244353)$ 且 $0\leq x < 998244353$。
範例
範例輸入 1
3 1 0 0
範例輸出 1
1 332748119 519087065
說明
點數為 $1$ 的有向圖中,答案為 $1$ 的合法有向圖有 $1$ 張,所以答案為 $1$,$mod\ 998244353$ 後為 $1$。
點數為 $2$ 的有向圖中,答案為 $1$ 的合法有向圖有 $2$ 張,答案為 $2$ 的合法有向圖有 $1$ 張,所以答案為 $\frac{4}{3}$,$mod\ 998244353$ 後為 $332748119$。
點數為 $3$ 的有向圖中,答案為 $1$ 的合法有向圖有 $15$ 張,答案為 $2$ 的合法有向圖有 $9$ 張,答案為 $3$ 的合法有向圖有 $1$ 張,所以答案為 $\frac{36}{25}$,$mod\ 998244353$ 後為 $519087065$。
資料範圍
對於全部測試資料,$1\leq n\leq 100000$,$0\leq s_i\leq 1$。
| 測試點編號 | $n\leq$ | 其他約定 |
|---|---|---|
| 1 | 4 | 無 |
| 2 | 1000 | $\forall 1\leq i\leq \lceil \frac{n}{2}\rceil ,s_i=0$ |
| 3 | 1000 | $\forall 1\leq i\leq n,s_i=[i==1]$ |
| 4 | 1000 | $\forall 1\leq i\leq n,s_i=[i==1]$ |
| 5 | 1000 | $\forall 1\leq i\leq n,s_i=[i==1]$ |
| 6 | 1000 | $\forall 1\leq i\leq \lceil \frac{n}{3}\rceil ,s_i=0$ |
| 7 | 1000 | $\forall 1\leq i\leq \lceil \frac{n}{3}\rceil ,s_i=0$ |
| 8 | 1000 | $\forall 1\leq i\leq \lceil \frac{n}{3}\rceil ,s_i=0$ |
| 9 | 1000 | $\exists x,\forall 1\leq i\leq n,s_i=[i==x]$ |
| 10 | 1000 | $\exists x,\forall 1\leq i\leq n,s_i=[i==x]$ |
| 11 | 1000 | $\exists x,\forall 1\leq i\leq n,s_i=[i==x]$ |
| 12 | 1000 | 無 |
| 13 | 1000 | 無 |
| 14 | 1000 | 無 |
| 15 | 100000 | 無 |
| 16 | 100000 | 無 |
| 17 | 100000 | 無 |
| 18 | 100000 | 無 |
| 19 | 100000 | 無 |
| 20 | 100000 | 無 |