Arrange

Accepts: 221
Submissions: 1401
Time Limit: 8000/4000 MS (Java/Others)
Memory Limit: 262144/262144 K (Java/Others)
问题描述
Cupid一不小心将爱情之箭射到了自己,他爱上了Psyche。

这引起了他的母亲Venus的注意。Venus将Psyche带到了一堆打乱的谷堆旁。

这儿共有$ n $堆稻谷,编号为$ 1 $到$ n $。Psyche需要将这些谷堆以某种顺序排列,设最终排在第$ i $位的谷堆是$ A_i $。

她得知了一些该排列的要求:

  1. 对于任意整数$ i \in [1,n] $,$ A_1, A_2, ..., A_i $的最小值为$ B_i $。

  2. 对于任意整数$ i \in [1,n] $,$ A_1, A_2, ..., A_i $的最大值为$ C_i $。

现在Psyche想知道,共有多少种合法的排列。由于答案可能很大,输出时对$ 998244353 $取模。
输入描述
第一行,一个整数$ T $ $ (1 \le T \le 15) $,代表数据组数。

对于每组数据,第一行有一个整数$ n $ $ (1 \le n \le 10 ^ 5) $,代表排列大小。

第二行,$ n $个整数,第$ i $个整数为$ B_i $ $ (1 \le B_i \le n) $。

第三行,$ n $个整数,第$ i $个整数为$ C_i $ $ (1 \le C_i \le n) $。
输出描述
输出$ T $行,对于每组数据输出答案对$ 998244353 $取模的结果。
输入样例
2
3
2 1 1
2 2 3
5
5 4 3 2 1
1 2 3 4 5
输出样例
1
0
Hint
对于第一组数据,只有一种合法的排列$ (2,1,3) $。

对于第二组数据,没有合法的排列。