#ATagc040f. [AGC040F] Two Pieces

[AGC040F] Two Pieces

题目描述

在数轴上放置了两个不可区分的棋子。两个棋子最初都位于坐标 00。(棋子可以同时存在于同一坐标)

对于这两个棋子,可以进行以下两种操作:

  • 任选一个棋子,将其移动到坐标加 11 的位置。
  • 将坐标较小的棋子移动到坐标较大的棋子的位置。如果两个棋子本来就在同一坐标,则什么都不发生,但这种情况也算作一次操作。

请以任意顺序重复上述操作共 NN 次,使得两个棋子分别位于坐标 AABBABA \leq B)。请计算满足条件的操作方法有多少种。由于答案可能非常大,请输出对 998244353998244353 取模的结果。

另外,若存在某个整数 ii1iN1 \leq i \leq N),使得第 ii 次操作后棋子所在坐标的集合在两种操作方法 xxyy 下不同,则认为这两种操作方法是不同的。

输入格式

输入从标准输入读入,格式如下:

NN AA BB

输出格式

输出满足条件的棋子的操作方法数对 998244353998244353 取模的结果。

样例 1

输入

5 1 3

输出

4

样例 2

输入

10 0 0

输出

1

样例 3

输入

10 4 6

输出

197

样例 4

输入

1000000 100000 200000

输出

758840509

说明/提示

限制条件

  • 1N1071 \leq N \leq 10^7
  • 0ABN0 \leq A \leq B \leq N
  • 输入的所有值均为整数。

样例说明 1

存在以下 44 种操作方法。用 (x,y)(x, y) 表示两个棋子分别位于 x,yx, y 的状态。

  • $(0,0) \to (0,0) \to (0,1) \to (0,2) \to (0,3) \to (1,3)$
  • $(0,0) \to (0,0) \to (0,1) \to (0,2) \to (1,2) \to (1,3)$
  • $(0,0) \to (0,0) \to (0,1) \to (1,1) \to (1,2) \to (1,3)$
  • $(0,0) \to (0,1) \to (1,1) \to (1,1) \to (1,2) \to (1,3)$

由 ChatGPT 4.1 翻译