#P8005. An Extra Requirement

An Extra Requirement

题目背景

由于 Codeforces [1] [2] 能从 Atcoder [1] [2] 搬题,于是出(搬)题人也从 Atcoder [3] 搬了一道。

题目描述

对于一个长度为 NN 的排列 PP,你可以进行若干次如下操作:选三个位置 x,y,z(x<y<z)x,y,z(x<y<z),若 Py<min{Px,Pz}P_y<\min\{P_x,P_z\}Py>max{Px,Pz}P_y>\max\{P_x,P_z\},那么可以删除 PyP_y

统计存在一种删除方式,使得最后只剩下不超过两个数且 P1=AP_1=A 的排列 PP 的个数。由于答案可能很大,你只需要输出个数模 998244353998244353 的结果即可。

输入格式

第一行输入一行一个正整数 TT 表示数据组数。

接下来 TT 行,每行两个正整数 N,AN,A,分别表示排列 PP 的长度和排列 PP 的第一个数。

输出格式

输出 TT 行,每行一个整数表示答案,对 998244353998244353 取模。

7
3 1
3 2
3 3
4 1
4 2
4 3
4 4
1
2
1
3
5
5
3
5
5 2
6 3
7 4
8 5
9 6
20
104
648
4662
38040

提示

本题采用捆绑测试

子任务编号 分值 特殊限制
00 1010 T,N8T,N\le 8
11 1515 T5T\le 5N100N\le 100
22 1010 T5T\le 5N1000N\le 1000
33 1515 A=1A=1
44 T5T\le 5N5×104N\le 5\times 10^4
55 T200T\le 200
66 2020 无特殊限制

对于所有数据,保证:1T1051\le T\le 10^51AN1051\le A\le N\le 10^5