Combinaciones que suman
Dados \(n\) números distintos y un objetivo \(t\), encuentra todas las maneras de escribir \(t\) como suma de esos números, donde cada número se puede usar cuantas veces quieras. Dos maneras son iguales si usan los mismos números la misma cantidad de veces (el orden no importa).
Entrada
La primera línea tiene \(n\) y \(t\) \((1 \le n \le 30,\ 1 \le t \le 40)\) y la segunda los \(n\) números distintos \((2 \le c_i \le 40)\). Hay a lo más \(150\) maneras.
Salida
En la primera línea, la cantidad de maneras. Luego una manera por línea: sus números en orden no decreciente, y las maneras en orden lexicográfico.
Ejemplo 1
Entrada
4 7
2 3 6 7
Salida
2
2 2 3
7
Ejemplo 2
Entrada
3 8
2 3 5
Salida
3
2 2 2 2
2 3 3
3 5
Ejemplo 3
Entrada
1 1
2
Salida
0
Basado en el problema 39 de LeetCode, Combination Sum, adaptado a entrada y salida estándar; enunciado redactado para este juez. Es parte de la lista Grind 75 de Yangshun Tay.
Comentarios