#CF626F. Group Projects
Group Projects
F. 分组项目
一个班级中有 个学生正在做小组项目。学生们将分成若干组(有些组可能只有一个人),各自完成自己的独立部分,然后再一起讨论结果。第 个学生完成自己的独立部分需要 分钟。
如果学生们的工作速度不同,那么对于较快的学生来说可能会感到沮丧,而对于较慢的学生来说则会感到压力。特别地,一个组的 不平衡度 定义为该组中最大的 减去最小的 。注意:只有一名学生的组,其不平衡度为 。
请问有多少种将学生分成若干组的方式,使得所有组的不平衡度之和 不超过 ?
如果存在一对学生在一种分组中属于同一组,而在另一种分组中不属于同一组,则这两种分组被视为不同。
输入格式
第一行包含两个用空格分隔的整数 和 (,)—— 分别表示学生人数以及允许的最大总不平衡度。
第二行包含 个用空格分隔的整数 ()—— 第 个学生完成独立部分所需的时间。
输出格式
输出一个整数,表示满足条件的分组方式数量。由于答案可能很大,请输出其对 取模后的值。
样例
样例输入 1
3 2
2 4 5
样例输出 1
3
样例输入 2
4 3
7 8 9 10
样例输出 2
13
样例输入 3
4 0
5 10 20 21
样例输出 3
1
样例解释
在第一个样例中,有三种可行的分组方式:
- 第 1 个学生和第 2 个学生组成一组,第 3 个学生单独一组。总不平衡度为 。
- 第 1 个学生单独一组,第 2 个学生和第 3 个学生组成一组。总不平衡度为 。
- 三个学生都各自单独成组。总不平衡度为 。
在第三个样例中,总不平衡度必须为 ,因此每个学生都必须单独成组。