/ Vijos / 题库 /

拖延

拖延

时间限制:1秒  内存限制:256M


【题目描述】

  Farmer John 有 \(N\) 头奶牛(1≤N≤20),高度为 \(1..a_N\)。他的牛栏有 \(N\) 个牛棚,高度限制分别为 \(b_1..b_N\)。例如,如果 \(b_5=17\),那么一头高度不超过 17 的奶牛可以住在牛棚 5里。Farmer John 有多少种不同的方式安排他的奶牛,使得每头奶牛均住在不同的牛棚里,并且使得每个牛棚的高度限制均得到满足?

【输入格式】

  输入的第一行包含 \(N\)。第二行包含 \(N\) 个空格分隔的整数 \(a_1,a_2,…,a_N\)。第三行包含 \(N\) 个空格分隔的整数 \(b_1,b_2,…,b_N\)。所有的高度和高度限制均在范围 \([1,10^9]\) 内。

【输出格式】

  输出 Farmer John 可以将每头奶牛安排到不同的牛棚里,使得每个牛棚的高度限制均得到满足的方法数。注意输出的数量可能需要使用 64 位整数型,例如 C++ 中的 long long。

【输入输出样例】

 Input

4
1 2 3 4
2 4 3 4

 Output

8

【样例解释】

  在这个例子中,我们不能将第三头奶牛安排到第一个牛棚里,因为 \(3=a_3>b_1=2\)。类似地,我们不能将第四头奶牛安排到第一或第三个牛棚里。一种符合高度限制的安排方式为将奶牛 1 安排到牛棚 1,奶牛 2 安排到牛棚 2,奶牛 3 安排到牛棚 3,奶牛 4 安排到牛棚 4。

【测试点性质】

  测试点 \(1−5\) 满足 N≤8。
  测试点 \(6−12\) 没有额外限制。

【来源】

  Mr.he

信息

ID
2909
难度
(无)
分类
(无)
标签
递交数
0
已通过
0
通过率
?
上传者