#P2458. 2458 - 奶牛排位

2458 - 奶牛排位

题目描述

Farmer John 有 NN 头奶牛( 1N201≤N≤20 ),高度为 aa11aaN。他的牛栏有 NN 个牛棚,高度限制分别为 bb11bbNN(例如,如果 bb55=17=17 ,那么一头高度不超过 1717 的奶牛可以住在牛棚 55 里)。

Farmer John 有多少种不同的方式安排他的奶牛,使得每头奶牛均住在不同的牛棚里,并且使得每个牛棚的高度限制均得到满足?

输入

输入的第一行包含 NN

第二行包含 NN 个空格分隔的整数 aa11,aa2aaN。第三行包含 NN 个空格分隔的整数 bb11,bb22,…,bbNN。所有的高度和高度限制均在范围 [11,101099] 内。

输出

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

样例

4
1 2 3 4
2 4 3 4
8

说明

【样例解释】

在这个例子中,我们不能将第三头奶牛安排到第一个牛棚里,因为 33=aa33>b>b11=2=2 。类似地,我们不能将第四头奶牛安排到第一或第三个牛棚里。一种符合高度限制的安排方式为将奶牛 11 安排到牛棚 11 ,奶牛 22 安排到牛棚 22 ,奶牛 33 安排到牛棚 33 ,奶牛 44 安排到牛棚 44

【数据范围】

1N201≤N≤20

测试点 151-5 满足 N8N≤8

测试点 6126-12 没有额外限制。

来源

USACO 2021 January Contest, Bronze

Problem 3. Just Stalling