U188373 比赛

题目描述

小 L 要参加一场比赛。 参加比赛的共有 $n$ 名选手。 名选手排成一行,从左到右第 $i$ 位选手的实力用正整数 $a[i]$ 表示。如果两名实力分别为 $x,y$ 的选手单挑,则获胜的概率分别为 $x/(x+y), y/(x+y)$。 比赛由 $n-1$ 轮组成,在每一轮中,**一对相邻**选手会被选出进行单挑。每对相邻选手被选择的概率是相等的。在这场单挑中输掉的一方会离开比赛,其余的选手进入下一轮,相对位置保持不变。$n-1$ 轮过后,剩下的一名选手即为比赛的胜者。 小 L 认为,这样的比赛并不公平,因为即使所有选手实力相同,**不同位置上的选手获胜的可能性也是不一样的**。因此,小 L 想让你求出每名选手获胜的概率(mod 998244353)。

输入格式

第一行一个整数 $n$,表示参加比赛的人数。 第二行 $n$ 个整数 $a[i]$,表示每位选手的实力。

输出格式

输出 $n$ 行,代表每位选手获胜的概率。

说明/提示

【样例解释】 第一组样例中,三位选手获胜的概率分别为 $11/60, 4/15, 11/20$。 第一位选手要获胜,有三种情况: - 第一位选手先后击败第二位和第三位选手。这种情况发生的概率为 $1/2 \times 1/(1+2) \times 1/(1+3) = 1/24$。 - 第二位选手先击败第三位选手,然后被第一位选手击败。这种情况发生的概率为 $1/2 \times 2/(2+3)\times 1/(1+2) = 1/15$ - 第三位选手先击败第二位选手,然后被第一位选手击败。这种情况发生的概率为 $1/2\times 3/(2+3) \times 1/(1+3) = 3/40$ 因此,第一位选手获胜的概率为 $1/24 + 1/15 + 3/40 = 11/60$ 【数据范围】 对于所有测试点 $1\le n \le 500, 1\le a[i] \le 499122176$,保证答案不是 998244353 的倍数。 子任务1(3分):$n\le 8$ 子任务2(5分):$n\le 10$ 子任务3(17分):$n\le 20$ 子任务4(20分):$n\le 60$ 子任务5(20分):$n\le 150$ 子任务6(15分):$a[i]=1$ 子任务7(20分):无特殊限制