Ha pasado un tiempo desde que mataste esa hidra , disfrutaste de la gloria durante años, pero ahora la gente te llama lavado, ha sido. Bueno, es hora de que demuestres que están equivocados, has escuchado el paradero de otra hidra. Simplemente mátalo y se te otorgará toda la gloria que mereces.
Llegas a la armería para recibir tus espadas, pero todas están fuera de las espadas normales, todo lo que les queda son Sectores. Un sector n dividirá el número de cabezas en una Hidra por n, pero solo se puede usar si el número de cabezas es divisible por n.
Una vez más, vas a escribir un código para ayudarte a matar la hidra. Su código tomará como entrada el número de cabezas de la hidra, comienza la pelea, el número de cabezas que la hidra crece en cada turno y una lista de n-sectores que puede usar. Su código generará un patrón óptimo de movimientos para matar la hidra lo más rápido posible
En cada turno de la pelea, puede seleccionar una sola espada para usar, si después de un corte la hidra tiene solo una cabeza que gana, si no crece las cabezas. Nunca puedes hacer ningún movimiento, y si no hay movimientos posibles disponibles, pierdes.
Si no es posible una solución, puede generar otra cosa que no sea una solución, por ejemplo, una lista vacía, nada, el número cero, etc.
Este es el código de golf, por lo que las respuestas se puntuarán como recuento de bytes, y menos será mejor.
Casos de prueba
Aquí hay algunos casos de prueba súper básicos, se agregarán más casos de prueba a pedido.
24 heads, 1 heads per turn, [2,3] -> [3,3,2,3]
25 heads, 2 heads per turn, [2,3] -> No solutions
4 heads, 2 heads per turn, [2] -> No solutions
4 heads, 3 heads per turn, [2,5] -> [2,5]
10 heads, 17 heads per turn, [2, 3, 7, 19] -> No solutions
10 heads, 6 heads per turn, [1,16] -> [1,16]
6 heads, 2 heads per turn, [2, 3, 5] -> [2, 5]
125 heads, 1 head per turn, [1, 2, 3, 127] -> [1, 1, 127]