AT_abc464_f [ABC464F] Random Vault Heist
题目描述
Kowasugi 银行有 $N$ 个保险箱。第 $i$ 个保险箱里有 $A_i$ 日元。
有一天,一名劫匪闯入银行。劫匪会重复以下操作,直到他偷到的钱总额达到至少 $X$ 日元为止:
- 从尚未被打开的保险箱中,等概率随机选择一个,打开它,并偷走里面所有的钱。
请计算这个劫匪最终偷走的钱数的期望值,并对 $998244353$ 取模输出。
期望值模 $998244353$ 的定义:
可以证明,本题中所要求的期望值始终是一个有理数。此外,在本题的约束条件下,可以证明当该值表示为最简分数 $\frac{P}{Q}$ 时,$Q \not\equiv 0 \pmod{998244353}$。因此,必存在唯一一个整数 $R$,满足 $R \times Q \equiv P \pmod{998244353}$,且 $0 \le R < 998244353$。请输出该 $R$。
输入格式
输入以如下格式从标准输入中给出:
> $N$ $X$ $A_1$ $A_2$ $\ldots$ $A_N$
输出格式
输出答案。
说明/提示
### 样例解释 1
第一次打开保险箱有两种选择。
如果第一次打开第 $1$ 号保险箱,那么劫匪还会再打开第 $2$ 号保险箱,所以一共偷得 $13$ 日元。
如果第一次打开第 $2$ 号保险箱,那么一开始总额就达到 $X$ 日元,因此总共偷得 $10$ 日元。
由此,期望值是 $\frac{13 + 10}{2} = \frac{23}{2}$。
### 样例解释 2
无论以何种顺序打开保险箱,当打开了两个保险箱后,偷的钱数都是 $2$ 日元。因此,期望值为 $2$。
### 约束条件
- $1 \le N \le 40$
- $1 \le A_i \le 10^{16}$
- $1 \le X \le \sum_{i=1}^{N} A_i$
- 所有输入值均为整数。
由 ChatGPT 5 翻译