#1511. 哆啦 A 梦的神奇铜锣烧储存系统

哆啦 A 梦的神奇铜锣烧储存系统

说明

哆啦 A 梦有一个神奇的铜锣烧储存系统,由 nn 个特殊的宝箱组成。每个宝箱里都装着哆啦 A 梦最喜欢的铜锣烧,但奇怪的是,这些铜锣烧有时会神秘地消失又出现!哆啦 A 梦发现,这些宝箱里只有 kk 个是真正装着铜锣烧的,其余的都是空的。

有一天,哆啦 A 梦想和大雄分享一些铜锣烧。他首先凭直觉选出了 mm 个他认为最有可能装着铜锣烧的宝箱。然后,这个系统会自动对剩下的 nmn-m 个宝箱施展魔法,随机打开 n(m+q)n-(m+q) 个空箱子,最后只剩下 qq 个宝箱是关闭的。

哆啦A梦很好奇:这剩下的 qq 个宝箱里,铜锣烧的期望数量是多少?由于这个系统具有魔法属性,你需要输出答案对 998244353998244353 取模的结果。

形式上,给定正整数 n,k,m,qn, k, m, q,其中:

nn 表示宝箱的总数 kk 表示实际装有铜锣烧的宝箱数量 mm 表示哆啦 A 梦最初选择的宝箱数量 qq 表示剩余未打开的宝箱数量(不包括最初选择的 mm 个宝箱) 输入数据保证有效,满足 1n1061 \le n \le 10^6, 0kn0 \le k \le n, 0mnq0 \le m \le n-q, 1qnm1 \le q \le n-m

游戏开始时,哆啦 A 梦选择 mm 个宝箱(不知道里面装的是什么)。然后,从剩余的 nmn-m 个宝箱中,系统随机打开 n(m+q)n-(m+q) 个空宝箱,最终留下 qq 个未打开的宝箱。

求这 qq 个未打开的宝箱中铜锣烧的期望数量(模 998244353998244353)。

如果剩余空箱不足 n(m+q)n-(m+q) 个,则打开所有剩余空箱,其他箱子不动。

输入格式

输入一行四个整数 nn, kk, mm, qq (1n1061 \le n \le 10^6, 0kn0 \le k \le n, 0mnq0 \le m \le n-q, 1qnm1 \le q \le n-m)。

输出格式

一个整数,表示在模 998244353998244353 意义下的铜锣烧期望数量。

样例

10 3 2 4
199648873

提示

这个问题需要用到素数模 998244353998244353 的模运算。你需要用到费马小定理来求模逆元。

费马小定理:如果 pp 是一个素数,aa 是一个不能被 pp 整除的整数,那么:

ap11(modp) a^{p-1} \equiv 1 \pmod{p} 这意味着 aapp 的模逆元是 ap2(modp)a^{p-2} \pmod{p}

你需要预先计算 nn 以内的阶乘及其模逆元,以便高效地计算模 998244353998244353 的组合数。

可以考虑使用组合数学和概率论。注意,系统只能打开空盒子,这会显著影响概率计算。