#abc217f. [abc217_f]Make Pair
[abc217_f]Make Pair
题目描述
有 个学生站成一排,编号从 到 ,从左到右。对于所有的两个学生对,他们之间有好或坏的关系。具体来说,对于每个 ,学生 和学生 之间是好关系;对于其他的两个学生对,他们之间是坏关系。
老师打算进行以下操作 次,组成 对学生。
- 选择两个相邻的好关系的学生,将他们配对,并将他们从队列中删除。
- 如果被删除的学生不在队列的两端,则将其左右两边的学生靠拢,使其相邻。
计算完成这个操作 次的可能方法数,模 。当存在 ,使得在两种方法中第 次操作选择的学生对有所不同时,认为这两种方法是不同的。
约束条件
- 输入中的所有学生对 均不重复。
- 输入中的所有值都是整数。
输入格式
从标准输入读入数据,输入格式如下:
输出格式
打印可能完成操作的方法数,模 。
示例输入1
2 3
1 2
1 4
2 3
示例输出1
1
完成操作的唯一方法是在第一次选择学生 和 ,在第二次选择学生 和 。如果在第一次操作中选择学生 和 ,那么剩下的学生是 和 ,他们之间是坏关系,因此无法在第二次操作中配对。
所以,应该输出 。
示例输入2
2 2
1 2
3 4
示例输出2
2
有两种完成操作的方法:一种是在第一次操作中选择学生 和 ,在第二次操作中选择学生 和 ;另一种是在第一次操作中选择学生 和 ,在第二次操作中选择学生 和 。注意这两种方法是不同的。
示例输入3
2 2
1 3
2 4
示例输出3
0
由于无法在第一次操作中选择学生对,所以无法完成操作,应该输出 。