#YDRS007D. Yet Another Passing-Ball Problem

Yet Another Passing-Ball Problem

题目描述

nn 个小朋友正在玩传球游戏。一开始(第 00 分钟)有 kk 个球,开始时编号为 ii 的球在小朋友 pip_i 的手里。

接下来手上有球的小朋友可以决定自己手里每个球下一分钟传给谁。注意同一个小朋友手上的球可以有不同的去向。

为了缩小每个人的持球时间的差距,规定上一分钟拿球的小朋友这一分钟不能拿球。同时为了缩小每个人持球数量的差距,规定拿球最多的小朋友不能拿超过 0.5k\lfloor 0.5k\rfloor 个球(x\lfloor x\rfloor 表示不超过 xx 的最大整数)。

你需要计算前 tt 分钟有多少种传球方法。两种传球方法不同,当且仅当存在 (b,i)(b,i),第 bb 个球第 ii 分钟在不同的人手里。

输入格式

输入的第一行有三个整数 n,k,tn,k,t,表示小朋友数、球数和游戏分钟数。

第二行有 kk 个整数 p1,p2,,pkp_1,p_2,\ldots,p_k 表示每个球在哪个小朋友手上。

输出格式

输出仅包含一行一个整数 ansans,表示方案数。

由于输出可能过大,你需要对质数 109+710^9+7 取余。

样例 #1

样例输入 #1

6 4 2
1 2 3 4

样例输出 #1

1224

提示

【样例解释】

11 分钟,只有两个小朋友上一分钟没拿到球,每人又不能拿超过 22 个球,因此每人恰好拿 22 个球,共有 66 种传法。

22 分钟,有 44 个小朋友可以接球,考虑 44 的拆分:

  • 2+22+2,拿球的小朋友有 66 种组合,每种组合贡献 66 种传球方式,共 3636 种传球方式。
  • 2+1+12+1+1,有 144144 种传球方式。
  • 1+1+1+11+1+1+1,有 2424 种传球方式。

因此总答案为 6×(36+144+24)=12246\times (36+144+24)=1224

【数据范围】

测试点编号 nn\le kk\le tt\le
11 55 44 =3=3
232\sim 3 =5=5 100100 100100
464\sim 6 10610^6
787\sim 8 =6=6 =99=99 100100
9109\sim 10 10610^6
111211\sim 12 10710^7 100100 11
131413\sim 14 33 10610^6
151715\sim 17 100100 100100
182018\sim 20 10610^6

对于全部数据,保证 4n1074\le n\le 10^72k1002\le k\le 1001t1061\le t\le 10^6

题目保证初始状态合法。