Já faz um tempo desde que você matou aquela hidra , você se deliciou com a glória por anos, mas agora as pessoas estão chamando você de lavada, um tem sido. Bem, é hora de você provar que estão errados. Você já ouviu o paradeiro de outra hidra. Basta matá-lo e você receberá toda a glória que você merece.
Você chega ao arsenal para receber suas espadas, mas todas elas estão fora das espadas regulares, tudo o que resta são os setores. Um setor n dividirá o número de cabeças em uma Hydra por n, mas só poderá ser usado se o número de cabeças for divisível por n.
Mais uma vez, você escreverá um código para ajudá-lo a matar a hidra. Seu código terá como entrada o número de cabeças da hidra, começa a briga, o número de cabeças que a hidra cresce a cada turno e uma lista de n setores que você pode usar. Seu código produzirá um padrão ideal de movimentos para matar a hidra o mais rápido possível
A cada turno da luta, você pode selecionar uma única espada para usar, se após uma fatia a hidra tiver apenas uma cabeça que você ganhar, se não, ela crescerá. Você nunca pode fazer nenhum movimento, e se não houver movimentos possíveis disponíveis, você perde.
Se nenhuma solução for possível, você poderá produzir outra coisa senão uma solução, por exemplo, uma lista vazia, nada, o número zero, etc.
Isso é código-golfe, então as respostas serão pontuadas conforme a contagem de bytes, com menos sendo melhores.
Casos de teste
Aqui estão alguns casos de teste super básicos, mais casos de teste serão adicionados mediante solicitação.
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]