拖延
时间限制: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
- 通过率
- ?
- 上传者