#P51844. 「PKUSC2018」真实排名

「PKUSC2018」真实排名

题目描述

小 C 是某知名比赛的组织者,该比赛一共有 nn 名选手参加,每个选手的成绩是一个非负整数,定义一个选手的排名是:成绩不小于他的选手的数量(包括他自己)。例如如果 33 位选手的成绩分别是 [1,2,2][1 , 2 ,2] ,那么他们的排名分别是 [3,2,2][3,2,2]

拥有上帝视角的你知道所有选手的实力,所以在考试前就精准地估计了每个人的成绩,设你估计的第 ii 个选手的成绩为AiA_i,且由于你是上帝视角,所以如果不发生任何意外的话,你估计的成绩就是选手的最终成绩。

但是在比赛当天发生了不可抗的事故(例如遭受到了外星人的攻击),导致有一些选手的成绩变成了最终成绩的两倍,即便是有上帝视角的你也不知道具体是哪些选手的成绩翻倍了,唯一知道的信息是这样的选手恰好有 kk 个。

现在你需要计算,经过了不可抗事故后,对于第 ii 位选手,有多少种情况满足他的排名没有改变。

由于答案可能过大,所以你只需要输出答案对 998244353998244353 取模的值即可。

输入格式

第一行两个正整数 n,kn,k

第二行 nn 个非负整数 A1..AnA_1..A_n

输出格式

输出 nn 行,第 ii 行一个非负整数 ansians_i,表示经过不可抗事故后,第 ii 位选手的排名没有发生改变的情况数。

样例

3 2
1 2 3
3
1
2

一共有 3 种情况:(1 , 2 )翻倍,(1 , 3)翻倍,(2 , 3)翻倍。

对于第一个选手来说,他的成绩就算翻倍,其他人都不低于他,所以任意情况下他的排名都不会改变。

对于第二个选手来说,如果是 (1 , 2) 翻倍,成绩变成 (2 , 4 , 3),他的排名变成了第一;如果是 (1 , 3) 翻倍,则成绩变成 (2 , 2 , 6),他的排名变成了第三;如果是 (2 , 3) 翻倍,则成绩变成 (1 , 4 , 6),他的排名还是第二。所以只有一种情况。

对于第三个选手来说,如果是 (1 , 2) 翻倍,他的排名会变成第二,其他情况下都还是第一。

数据范围与提示

对于 10%10\% 的数据,有 1n151\leq n\leq 15

对于 35%35\% 的数据,有 1n1031\leq n\leq 10^3

另有 10%10\% 的数据,满足每个人的成绩都互不相同

另有 10%10\% 的数据,满足 0Ai1050\leq A_i\leq 10^5

另有 10%10\% 的数据,满足 k=85k=850Ai6000\leq A_i\leq 600

对于100%100\%的数据,有1k<n1051\leq k < n\leq 10^50Ai1090\leq A_i\leq 10^9