#agc028d. [agc028_d]Chords
[agc028_d]Chords
题目描述
在一个圆的周长上均匀地分布有 个点。这些点按顺时针顺序编号为 到 ,从其中一些点开始。
Snuke 将这些点分成 对,然后对于每一对,他将连接两个点之间的线段。在绘制完线段之后,两个点被 连接 当且仅当一个点可以通过只沿着线段行走到达另一个点。这里所说的 连接部分的数量 指的是具有 个顶点的图中连接组件的数量,其中每一对对应的两个连接点的顶点之间都存在边。
Snuke 已经决定了 对,其中第 对是点 和点 。
他打算尝试所有可能的方法来生成剩下的 对,并计算每种方法中连接部分的数量。求这些连接部分的数量之和。由于答案可能非常大,计算取模 后的和。
约束条件
- 两两不相同。
- 输入数据中的所有值均为整数。
输入
从标准输入读入输入数据,输入格式如下:
输出
打印出对于生成剩下的 对的所有可能方法,连接部分的数量之和。
示例输入1
2 0
示例输出1
5
有三种画线段的方式,如下所示,这些方式的连接部分数量分别为 , 和 。因此,答案是 。
示例输入2
4 2
5 2
6 1
示例输出2
6
示例输入3
20 10
10 18
11 17
14 7
4 6
30 28
19 24
29 22
25 32
38 34
36 39
示例输出3
27087418