Combinaciones de Monedas II


Enviar solución

Puntos: 100
Límite de tiempo: 1.0s
Límite de memoria: 512M

Tipo de problema
Lenguajes permitidos
Assembly, Awk, Brain****, C, C++, Java, Pascal, Perl, Python, Sed, Text

Considera un sistema monetario que consiste en \(N\) monedas. Cada moneda tiene un valor entero positivo. Tu tarea es calcular el número de formas distintas _ordenadas_ en las que puedes producir una suma de dinero \(X\) usando las monedas disponibles.

Por ejemplo, si las monedas son \(\{2, 3, 5\}\) y la suma deseada es \(9\), hay \(3\) formas:

  • \(2 + 2 + 5\)
  • \(3 + 3 + 3\)
  • \(2 + 2 + 2 + 3\)

Entrada

La primera línea de entrada tiene dos enteros \(N\) y \(X\): el número de monedas y la suma de dinero deseada (\(1 \leq N \leq 100, 1 \leq X \leq 10^6\)).

La segunda línea tiene \(N\) enteros distintos \(c_1, c_2, \dots, c_N\): el valor de cada moneda (\(1 \leq c_i \leq 10^6\)).

Salida

Imprime un número entero: el número de formas módulo \(10^9 + 7\).

Ejemplo

Entrada:

3 9
2 3 5

Salida:

3

Comentarios

No hay comentarios por el momento.