题目描述
我们有一个长度为N的序列,由介于0和M之间(包括0和M)的整数组成:A=(A1,A2,…,AN)。
Snuke将按照以下操作1和2的顺序执行。
- 对于每个i使得Ai=0,独立地选择介于1和M之间(包括1和M)的均匀随机整数,并用该整数替换Ai。
- 按升序对A进行排序。
在进行两次操作后,打印出AK的期望值(对998244353取模)。
如何打印出数模998244353的值?可以证明所求的期望值始终是有理数。此外,在这个问题的约束条件下,当该值表示为fracPQ,其中P和Q是互质的整数时,可以证明存在唯一的整数R,满足RtimesQequivPpmod998244353且0leqRlt998244353。输出这个R。
约束条件
- 1leqKleqNleq2000
- 1leqMleq2000
- 0leqAileqM
- 输入中的所有值都是整数。
输入
输入以以下格式从标准输入给出:
N M K
A1 A2 … AN
输出
在进行两次操作后,打印出AK的期望值(对998244353取模)。
示例输入 1
3 5 2
2 0 4
示例输出 1
3
在操作1中,Snuke将用介于1和5之间的整数替换A2。设该整数为x。
- 如果x=1或2,两次操作后我们将有A2=2。
- 如果x=3,两次操作后我们将有A2=3。
- 如果x=4或5,两次操作后我们将有A2=4。
因此,A2的期望值是frac2+2+3+4+45=3。
示例输入 2
2 3 1
0 0
示例输出 2
221832080
期望值是frac149。
示例输入 3
10 20 7
6 5 0 2 0 0 0 15 0 0
示例输出 3
617586310