本题使用标准输入、标准输出,无需读写题面中提到的文件。
题目描述
农夫 John 有 头奶牛(),它们的身高为 。 他的牛棚有 个牛栏,每个牛栏有最大身高限制 (例如,如果 ,那么身高不超过 的奶牛可以住在第 个牛栏)。 问:农夫 John 有多少种不同的方式安排这些奶牛,使得每头奶牛住在不同的牛栏中,并且每个牛栏都满足身高限制?
输入格式
第一行包含 。 第二行包含 个用空格分隔的整数 。 第三行包含 个用空格分隔的整数 。 所有身高与限制都在范围 内。
输出格式
输出农夫 John 将每头奶牛放入不同牛栏、且每个牛栏都满足身高限制的方案数。 注意:输出可能非常大,可能需要使用 64 位整数类型,例如 C++ 中的 "long long"。
4
1 2 3 4
2 4 3 4
8
提示
在这个例子中,我们不能把第三头奶牛放入第一个牛栏,因为 。同样地,我们不能把第四头奶牛放入第一个或第三个牛栏。 一种满足身高限制的方式是:将奶牛 分配到牛栏 ,奶牛 分配到牛栏 ,奶牛 分配到牛栏 ,奶牛 分配到牛栏 。 SCORING: 测试点 1-5 满足 。 测试点 6-12 没有额外限制。 题目来源:Shreyas Thumathy
来源
USACO|2021|Bronze