SZTG-L-CF626F. Group Projects

提交1 通过1
通过率100%
时间限制2000ms
内存限制256MiB

题目描述

题目描述

班级中有 nn 个学生正在进行小组项目。学生们将分成若干组(有些学生可以单独成组),分别完成各自的独立部分,然后一起讨论结果。第 ii 个学生完成他/她的独立部分需要 aia_i 分钟。

如果学生之间的工作速度不同,较快的学生会感到沮丧,较慢的学生会感到有压力。特别地,某一个小组的不平衡度定义为该组内最大 aia_i 减去最小 aia_i。注意,若某一组只有一个学生,其不平衡度为 00。问有多少种不同的分组方式,使得所有小组的不平衡度总和不超过 kk?

如果存在一对学生,在一种分组中属于同一组,在另一种分组中属于不同组,则这两种分组被认为是不同的。

输入格式

第一行包含两个用空格分隔的整数 nn 和 kk,分别表示学生人数和允许的最大总不平衡度。

第二行包含 nn 个用空格分隔的整数 aia_i,表示第 ii 个学生完成其独立部分所需的时间。

输出格式

输出一个整数,表示学生可分组的方案数。由于答案可能很大,请输出答案对 109+710^9+7 取模后的结果。

3 2
2 4 5
3
4 3
7 8 9 10
13
4 0
5 10 20 21
1

说明 / 提示

在第一个样例中,有三种方案:

  • 第一、第二个学生分为一组,第三个学生单独成组。总不平衡度为 2+0=22+0=2。
  • 第一个学生单独成组,第二、第三个学生分为一组。总不平衡度为 0+1=10+1=1。
  • 所有三个学生都单独成组。总不平衡度为 00。

在第三个样例中,总不平衡度必须为 00,因此每个学生必须单独成组。

由 ChatGPT 5 翻译

数据范围

(1≤n≤2001 \leq n \leq 200,0≤k≤10000 \leq k \leq 1000)

(1≤ai≤5001 \leq a_i \leq 500)