#5115. Problem 3. Just Stalling

0

Problem 3. Just Stalling

Problem 3. Just Stalling

USACO 2021 January Contest, Bronze

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

输入格式(从终端/标准输入读入):

输入的第一行包含 NN。第二行包含 NN 个空格分隔的整数 a1,a2,,aNa_1,a_2,\ldots,a_N。第三行包含 NN 个空格分隔的整数 b1,b2,,bNb_1,b_2,\ldots,b_N。所有的高度和高度限制均在范围 [1,109][1,10^9] 内。

输出格式(输出至终端/标准输出):

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

输入样例:


4
1 2 3 4
2 4 3 4

输出样例:


8

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

测试点性质: 测试点 1-5 满足 N8N\le 8。测试点 6-12 没有额外限制。

供题:Shreyas Thumathy