CF960G Bandit Blues

题目描述

Japate 在穿越 Mala 森林时,看到有 $N$ 袋金子排成一行。每袋金子的重量各不相同,且重量为 $1$ 到 $N$ 之间的整数。Japate 只能带走一袋金子,因此他采用如下策略来选择金袋: 一开始,他手里是一个空袋子(重量为零)。他按照某种顺序依次考虑这些金袋。如果当前金袋的重量比他手中的袋子重,他就用当前的金袋替换手中的袋子。 Japate 会将这些金袋按某种顺序排列。他发现,如果他从前往后依次挑选金袋,他会挑选 $A$ 个袋子;如果他从后往前挑选,则会挑选 $B$ 个袋子。这里的“挑选”指的是用当前的金袋替换手中的袋子。 现在,他想知道,有多少种排列方式,使得从前往后挑选时能挑选 $A$ 个袋子,从后往前挑选时能挑选 $B$ 个袋子,且都按照上述策略进行。 由于答案可能非常大,请输出答案对 $998244353$ 取模后的结果。

输入格式

输入仅一行,包含三个用空格分隔的整数 $N$($1 \leq N \leq 10^{5}$)、$A$ 和 $B$($0 \leq A,B \leq N$)。

输出格式

输出一个整数,表示满足条件的排列数,对 $998244353$ 取模。

说明/提示

样例 $1$ 中,唯一可能的排列是 $[1]$。 样例 $2$ 和 $3$ 中,长度为 $2$ 的排列只有两种:$[1,2]$ 和 $[2,1]$。对于第一个排列,$a=2$,$b=1$;对于第二个排列,$a=1$,$b=2$。 样例 $4$ 中,$[1,2,3,4,5]$ 的 $120$ 种排列中,只有 $22$ 种满足给定的 $a$ 和 $b$ 的约束。 由 ChatGPT 4.1 翻译