Ex - Typical Convolution Problem Editorial /

Time Limit: 5 sec / Memory Limit: 1024 MB

配点 : 650

問題文

数列 (A_1, A_2, \ldots , A_N) が与えられます。 数列 (F_0, F_1, \ldots , F_N) を以下の式により定義します。

  • F_0 = 1
  • F_n = A_n\displaystyle\sum_{i+j<n}F_iF_j (1 \leq n \leq N)

F_1, \ldots , F_N998244353 で割った余りを求めてください。

制約

  • 1 \leq N \leq 2 \times 10^5
  • 0 \leq A_i < 998244353
  • 入力される値はすべて整数

入力

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

N
A_1 A_2 \ldots A_N

出力

F_1, \ldots , F_N998244353 で割った余りをこの順に空白区切りで出力せよ。


入力例 1

5
1 2 3 4 5

出力例 1

1 6 48 496 6240

F_1 = A_1F_0F_0 = 1 です。 F_2 = A_2(F_0F_0+F_0F_1+F_1F_0) = 6 です。 同様にして、F_3 = 48, F_4 = 496, F_5 = 6240 がわかります。


入力例 2

3
12345 678901 2345678

出力例 2

12345 790834943 85679169

Score : 650 points

Problem Statement

You are given a sequence (A_1, A_2, \ldots , A_N). Let us define a sequence (F_0, F_1, \ldots , F_N) by the following formulae.

  • F_0 = 1
  • F_n = A_n\displaystyle\sum_{i+j<n}F_iF_j (1 \leq n \leq N)

Find F_1, \ldots , F_N modulo 998244353.

Constraints

  • 1 \leq N \leq 2 \times 10^5
  • 0 \leq A_i < 998244353
  • All input values are integers.

Input

The input is given from Standard Input in the following format:

N
A_1 A_2 \ldots A_N

Output

Print F_1, \ldots , F_N modulo 998244353 in this order, with spaces in between.


Sample Input 1

5
1 2 3 4 5

Sample Output 1

1 6 48 496 6240

F_1 = A_1F_0F_0 = 1. F_2 = A_2(F_0F_0+F_0F_1+F_1F_0) = 6. Similarly, we find F_3 = 48, F_4 = 496, F_5 = 6240.


Sample Input 2

3
12345 678901 2345678

Sample Output 2

12345 790834943 85679169