7460. 编程公司 (Coding Company)
时间限制:1000 MS 内存限制:512 MB
题目描述
# 编程公司 (Coding Company) 时间限制:$1.00\text{ s}$ 空间限制:$512\text{ MB}$ ## 题目描述 你的公司有 $n$ 名程序员,每名程序员都有一个介于 $0$ 到 $100$ 之间的技能值。你的任务是将他们分成若干个团队。 根据你的经验,当团队成员的技能水平相近时,团队的工作效率最高。因此,组建一个团队的惩罚值定义为该团队中技能最高与技能最低的程序员之间的技能水平差值。 请问有多少种方法可以将这 $n$ 名程序员分成若干个团队,使得所有团队惩罚值之和不超过 $x$? ## 输入格式 第一行包含两个整数 $n$ 和 $x$:程序员的人数以及最大允许的惩罚值总和。 第二行包含 $n$ 个整数 $t_1, t_2, \dots, t_n$:每名程序员的技能水平。 ## 输出格式 输出一个整数:合法的分队方案数,对 $10^9 + 7$ 取模。 ## 输入输出样例 ### 输入 #1 ```text 3 2 2 5 3 ``` ### 输出 #1 ```text 3 ``` ## 说明/提示 ### 数据规模与约定 - $1 \le n \le 100$ - $0 \le x \le 5000$ - $0 \le t_i \le 100$