UOJ Logo

NOI.AC

1S 512MB
统计

题目描述

给定一个长度为 n 的排列 p 和一个长度为 n 的数组 q 。你可以进行如下操作任意多次(包括 0 次):选择两个下标 i,j ,交换 pipj

求有多少种操作完后的排列满足 p 中的每个位置小于等于 q 中的对应位置。即,i[1,n],piqi 。你需要输出总数对 109+7 取模后的结果。

输入格式

第一行一个整数 n

第二行 n 个互不相同的整数,代表排列 p

第三行 n 个整数,代表数组 q

输出格式

一行一个整数,表示答案对 109+7 取模后的结果

输入样例1

4
4 3 2 1
4 4 2 2

输出样例1

4

输入样例2

5
1 2 3 4 5
1 1 3 5 5

输出样例2

0

对于样例1,可能的排列有[3,4,1,2],[4,3,1,2],[3,4,2,1],[4,3,2,1]

对于样例2,因为只有一个1,所以第一个和第二个位置有一个位置会无法放置,答案为0

数据范围

对于40%的数据,n10

对于50%的数据,n20

对于60%的数据,n103

对于另外20%的数据,数组 q 中整数互不相同。

对于所有数据,1n105,1pi,qin

点此下载