#agc040f. [agc040_f]Two Pieces

[agc040_f]Two Pieces

题目描述

我们在数轴上放置了两个无法区分的物体。这两个物体最初都在坐标 00 上(它们可以占据同一位置)。

我们可以进行以下两种操作:

  • 选择一个物体并将其向右移动 11 个单位。
  • 将坐标较小的物体移动到坐标较大的物体所在的位置。如果两个物体已经占据了相同的位置,则什么也不会发生,但仍然计为进行一次操作。

我们希望以某种顺序累计进行 NN 次这些操作,使得其中一个物体位于坐标 AA,另一个物体位于坐标 BB。计算移动物体的方法数,答案可能非常大,因此需对 998244353998244353 取模运算。

如果在第 ii 次操作后,两种方式中被物体占据的坐标集合不同,则认为这两种方式是不同的。

约束条件

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

输入

输入通过标准输入给出,格式如下:

NN AA BB

输出

打印移动物体以实现目标的方法数,结果对 998244353998244353 取模。

示例输入 1

5 1 3

示例输出 1

4

以下是移动物体的四种方式,其中 (x,y)(x,y) 表示两个物体处于坐标 xxyy 的状态。

  • (0,0)(0,0)(0,1)(0,2)(0,3)(1,3)(0,0)→(0,0)→(0,1)→(0,2)→(0,3)→(1,3)
  • (0,0)(0,0)(0,1)(0,2)(1,2)(1,3)(0,0)→(0,0)→(0,1)→(0,2)→(1,2)→(1,3)
  • (0,0)(0,0)(0,1)(1,1)(1,2)(1,3)(0,0)→(0,0)→(0,1)→(1,1)→(1,2)→(1,3)
  • (0,0)(0,1)(1,1)(1,1)(1,2)(1,3)(0,0)→(0,1)→(1,1)→(1,1)→(1,2)→(1,3)

示例输入 2

10 0 0

示例输出 2

1

示例输入 3

10 4 6

示例输出 3

197

示例输入 4

1000000 100000 200000

示例输出 4

758840509