时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
金发少女 DK 出了一套比赛,众所周知 DK 并不是一个好出题人,这回他的数据造的太烂了,有一道字符串题被“先搜长串再搜短串”的奇怪算法草了过去,导致有可能有一部分选手的实际分数比他的估分高了 d 分
DK 惊奇地发现,每个人的实际排名和他估分的排名完全一致,他觉得这种事情简直太少见了。假设从 n 位选手中选 k 位增加 d 分的

种方案的概率均相等,DK 希望你告诉他每个选手排名不变的概率。答案模 998244353
形式化地说:给出 n 个正整数

,即每个选手的估分和 d,随机使 k 个元素增加 d(

种可能发生的概率相等),求增加后的序列

满足如果

那么

的概率
对于每个

,你都要输出其对应的答案。答案模 998244353
具体来说,所求的概率应该是一个有理数

,你要输出的是满足

的 x。保证这个方程有解
输入描述:
一行两个整数 n,d
接下来一行 n 个整数 
输出描述:
输出 n 行每行一个整数,第 i 行的整数表示 k=i 时的答案
示例1
输出
复制
199648871
898419918
898419918
199648871
1
说明
当 k=1 时,共有5种可能
其中,给

或

加 d,满足条件
故概率为

,在 mod 998244353 意义下为 199648871
备注:
对于所有数据保证:
,数据保证
各不相同