#YDRS007D. Yet Another Passing-Ball Problem
Yet Another Passing-Ball Problem
题目描述
有 个小朋友正在玩传球游戏。一开始(第 分钟)有 个球,开始时编号为 的球在小朋友 的手里。
接下来手上有球的小朋友可以决定自己手里每个球下一分钟传给谁。注意同一个小朋友手上的球可以有不同的去向。
为了缩小每个人的持球时间的差距,规定上一分钟拿球的小朋友这一分钟不能拿球。同时为了缩小每个人持球数量的差距,规定拿球最多的小朋友不能拿超过 个球( 表示不超过 的最大整数)。
你需要计算前 分钟有多少种传球方法。两种传球方法不同,当且仅当存在 ,第 个球第 分钟在不同的人手里。
输入格式
输入的第一行有三个整数 ,表示小朋友数、球数和游戏分钟数。
第二行有 个整数 表示每个球在哪个小朋友手上。
输出格式
输出仅包含一行一个整数 ,表示方案数。
由于输出可能过大,你需要对质数 取余。
样例 #1
样例输入 #1
6 4 2
1 2 3 4
样例输出 #1
1224
提示
【样例解释】
第 分钟,只有两个小朋友上一分钟没拿到球,每人又不能拿超过 个球,因此每人恰好拿 个球,共有 种传法。
第 分钟,有 个小朋友可以接球,考虑 的拆分:
- ,拿球的小朋友有 种组合,每种组合贡献 种传球方式,共 种传球方式。
- ,有 种传球方式。
- ,有 种传球方式。
因此总答案为 。
【数据范围】
测试点编号 | |||
---|---|---|---|
对于全部数据,保证 ,,。
题目保证初始状态合法。