#agc056e. [agc056_e]Cheese

[agc056_e]Cheese

问题描述

有一个周长为NN的圆。在这个圆上,从某个固定点测量顺时针方向到与该固定点的距离为xx的点,其坐标为xx

对于每个整数ii (0iN10 \leq i \leq N-1),都有一只老鼠位于坐标i+0.5i+0.5

Snuke将扔N1N-1次奶酪。具体来说,他会重复以下步骤N1N-1次:

  • 随机选择一个整数yy (0yN10 \leq y \leq N-1),其中以概率AiA_i百分比选择y=iy=i。每次选择都是独立的。
  • 然后,从坐标yy处扔奶酪。奶酪沿着圆周的顺时针方向传播。当奶酪遇到老鼠时,会发生以下情况:
    • 如果老鼠还没有吃奶酪:
      • 它以1/21/2的概率吃掉奶酪。奶酪消失。
      • 它以1/21/2的概率什么都不做。
    • 如果老鼠已经吃过奶酪:
      • 它什么都不做。
  • 奶酪继续沿着周长传播,直到被某只老鼠吃掉。

经过N1N-1次扔奶酪后,将会有一只老鼠从未吃过奶酪。对于每个k=0,1,,N1k=0,1,\cdots,N-1,找出位于坐标k+0.5k+0.5的老鼠最终不吃奶酪的概率,模998244353998244353

如何表示模998244353998244353的概率

我们可以证明,所有相关的概率都是有理数。此外,在该问题的约束条件下,当该数字表示为最简分数形式PQ\frac{P}{Q}时,我们还可以证明Q0(mod998244353)Q \neq 0 \pmod{998244353}。因此,存在唯一的整数RR,使得$R \times Q \equiv P \pmod{998244353}, 0 \leq R < 998244353$。以这个RR作为答案。

约束条件

  • 1N401 \leq N \leq 40
  • 0Ai0 \leq A_i
  • 0iN1Ai=100\sum_{0 \leq i \leq N-1} A_i = 100
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入给出:

NN A0A_0 A1A_1 \cdots AN1A_{N-1}

输出

在一行中以空格分隔,打印出k=0,1,,N1k=0,1,\cdots,N-1的答案。

示例输入1

2
0 100

示例输出1

665496236 332748118

总是选择y=1y=1。从这个点扔奶酪时,发生以下情况:

*以1/21/2的概率,位于坐标1.51.5的老鼠吃掉它。 *以1/41/4的概率,位于坐标0.50.5的老鼠吃掉它。 *以1/81/8的概率,位于坐标1.51.5的老鼠吃掉它。 *以1/161/16的概率,位于坐标0.50.5的老鼠吃掉它。 *\vdots

最后,坐标为0.50.51.51.5的老鼠分别以1/31/32/32/3的概率吃掉了这个奶酪。

因此,它们最终不吃奶酪的概率分别为2/32/31/31/3

示例输入2

2
50 50

示例输出2

499122177 499122177

示例输入3

10
1 2 3 4 5 6 7 8 9 55

示例输出3

333507001 91405664 419217284 757959653 974851434 806873643 112668439 378659755 979030842 137048051