A71391. 奶牛排位
编程题
基础
知识点
题目描述
Farmer John 有 N 头奶牛(1 \le N \le 20),第 i 头奶牛的高度为 a_i。
他有 N 个牛棚,第 j 个牛棚的高度限制为 b_j,即只有当奶牛高度满足 a_i \le b_j 时,奶牛 i 才能住进牛棚 j。
问:将这 N 头奶牛一一安排到不同牛棚中,并且每头奶牛都满足对应牛棚高度限制的方案数有多少?
输入格式
第一行一个整数 N。
第二行包含 N 个整数 a_1,a_2,\ldots,a_N。
第三行包含 N 个整数 b_1,b_2,\ldots,b_N。
输出格式
输出一个整数,表示可行安排方案数。
注意答案可能超过 32 位整型范围,请使用 64 位整数类型(如 C++ 的 long long)。
输入输出样例
输入 #1
4 1 2 3 4 2 4 3 4
输出 #1
8
说明/提示
样例解释
在该样例中:
- 奶牛 3 不能放入牛棚 1,因为 a_3=3>b_1=2。
- 奶牛 4 不能放入牛棚 1 或牛棚 3,因为 a_4=4>b_1=2 且 a_4=4>b_3=3。
例如一种合法方案是:
奶牛 1 \to 牛棚 1,奶牛 2 \to 牛棚 2,奶牛 3 \to 牛棚 3,奶牛 4 \to 牛棚 4。
数据范围
- 1 \le N \le 20
- 1 \le a_i,b_j \le 10^9