#CF1946E. 女孩排列
女孩排列
E. 女孩排列
单个测试点时间限制: 秒 单个测试点内存限制: 兆字节
有一个长度为 的排列被隐藏。
给出它的前缀最大值位置和后缀最大值位置。
回忆一下:长度为 的排列是一个大小为 的数组,其中 到 每个整数恰好出现一次。
前缀最大值是指:在以该元素结尾的前缀中是最大值的元素。 更形式化地说:元素 是前缀最大值,当且仅当对所有 都有 。
后缀最大值类似定义:元素 是后缀最大值,当且仅当对所有 都有 。
你需要输出可能满足条件的不同排列的数量。
由于答案可能很大,将答案对 取模后输出。
输入格式
输入包含多组测试数据。
第一行一个整数 (),表示测试用例数量。
每组测试用例: 第一行三个整数 (),分别表示排列长度、前缀最大值个数、后缀最大值个数。
第二行 个整数 (),表示递增顺序给出的前缀最大值位置。
第三行 个整数 (),表示递增顺序给出的后缀最大值位置。
保证所有测试用例的 之和不超过 。
输出格式
对于每组测试用例,输出一行一个整数,表示合法排列的数量对 取模的结果。
样例输入
6
1 1 1
1
1
4 2 3
1 2
2 3 4
3 3 1
1 2 3
3
5 3 4
1 2 3
2 3 4 5
20 5 4
1 2 3 4 12
12 13 18 20
6 2 3
1 3
3 4 6
样例输出
1
3
1
0
317580808
10