#M1008. 放置物品

放置物品

题目描述

小 Z 现在有 nn 个物品,编号为 1,2,,n1,2,\dots,n,重量为 a1,a2,,ana_1,a_2,\dots,a_n。小 Z 又有 nn 个背包,背包编号为 1,2,,n1,2,\dots,n,每个背包的重量限制为 b1,b2,,bnb_1,b_2,\dots,b_n,其中 bi=jb_i=j 表示一个重量不超过 jj 的物品可以放到 ii 号背包。

  • 例如:b3=12b_3=12,表示一个重量不超过 1212 的物品可以放到 33 号背包。

问小 Z 有多少种不同的方式安排他的物品,使得每个物品均放在不同的背包里,并且使得每个物品的重量限制均得到满足?

输入格式

输入的第一行包含 nn

第二行包含 nn 个空格分隔的整数 a1,a2,,ana_1,a_2,…,a_n

第三行包含 nn 个空格分隔的整数 b1,b2,,bnb_1,b_2,…,b_n

输出格式

输出满足题目要求的方案数。

样例 #1

样例输入 #1

4
1 2 3 4
2 4 3 4

样例输出 #1

8

提示

【样例解释】

在这个例子中,我们不能将第三个物品安排到第一个背包里,因为 3=a3>b1=23=a_3>b_1=2。类似地,我们不能将第四个物品放到第一或第三个背包里。一种符合重量限制的安排方式为将物品 11 放到背包 11,物品 22 放到背包 22,物品 33 放到背包 33,物品 44 放到到背包 44

【数据范围】

  • 测试点 1-5 满足 n8n≤8

  • 测试点 6-12 满足 n20,1ai109,1bi109n\le20,1\le a_i \le 10^9,1\le b_i \le 10^9