U1223 「USACO 2021.01 Bronze」Just Stalling

暂无评定 传统题 USACO2021Bronze 上传者
时间限制2000ms
内存限制256MiB
通过 / 提交0/0

U1223「USACO 2021.01 Bronze」Just Stalling

暂无评定 传统题 USACO2021Bronze 上传者
时间限制2000ms
内存限制256MiB
通过 / 提交0/0

本题使用标准输入、标准输出,无需读写题面中提到的文件。

题目描述

农夫 John 有 NN 头奶牛(1≤N≤201\le N \leq 20),它们的身高为 a1…aNa_1 \ldots a_N。 他的牛棚有 NN 个牛栏,每个牛栏有最大身高限制 b1…bNb_1 \ldots b_N(例如,如果 b5=17b_5 = 17,那么身高不超过 1717 的奶牛可以住在第 55 个牛栏)。 问:农夫 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] 内。

输出格式

输出农夫 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。 SCORING: 测试点 1-5 满足 N≤8N\le 8。 测试点 6-12 没有额外限制。 题目来源:Shreyas Thumathy

来源

USACO|2021|Bronze