2.重排计数
【问题描述】
给定一个长度为 n 的排列 p 和一个长度为 n 的数组 q 。你可以进行如下操作任意多次(包括 0 次):选择两个下标i,j ,交换 pi 和 pj 。
求有多少种操作完后的排列满足 p 中的每个位置小于等于 q 中的对应位置。
【输入格式】
第一行一个整数 n。
第二行 n 个互不相同的整数,代表排列 p。
第三行 n 个整数,代表数组 q 。
【输出格式】
一行一个整数,表示答案对 取模后的结果。
【输入输出样例】
输入1
4
4 3 2 1
4 4 2 2
输出1
4
样例输入2 样例输出2
5
1 2 3 4 5
1 1 3 5 5
0
对于所有数据,1<=n,pi,qi<=1e5。
求代码