Coding Company.


Submit solution

Points: 100 (partial)
Time limit: 2.0s
Memory limit: 512M

Author:
Problem types

Su empresa tiene n programadores, cada uno con un nivel de habilidad entre 0 y 100. Su tarea consiste en dividir a los programadores en equipos que trabajen juntos. Según su experiencia, sabe que los equipos funcionan bien cuando los niveles de habilidad de los programadores son aproximadamente iguales. Por esta razón, la penalización por crear un equipo es la diferencia de nivel de habilidad entre el mejor y el peor programador.

¿De cuántas maneras puede dividir a los programadores en equipos de modo que la suma de las penalizaciones sea como máximo x?

Entrada

La primera línea de entrada tiene dos enteros n y x: el número de programadores y la suma máxima de penalizaciones permitidas. La siguiente línea tiene n enteros t_1,t_2,\dots,t_n: el nivel de habilidad de cada programador.

Salida

Imprima un entero: el número de divisiones válidas módulo 10^9+7.

Restricciones

  • 1 \leq n \leq 100
  • 0 \leq x \leq 5000
  • 0 \leq t_i \leq 100

Ejemplo de Entrada

3 2
2 5 3

Ejemplo de Salida

3

Comments

There are no comments at the moment.