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