Прошло много времени с тех пор, как вы убили эту гидру , вы годами грелись в славе, но теперь люди зовут вас вымытыми. Что ж, пришло время доказать, что они не правы, вы слышали о местонахождении другой гидры. Просто убейте его, и вы получите всю славу, которую заслуживаете.
Вы прибываете в арсенал, чтобы получить свои мечи, но все они из обычных мечей, все, что у них осталось, это Секторы. N-сектор разделит число голов гидры на n, но может использоваться только в том случае, если количество голов делится на n.
Еще раз вы собираетесь написать код, который поможет вам убить гидру. Ваш код будет принимать в качестве входных данных число голов гидры, с которых начинается бой, количество голов гидры растет с каждым ходом и список n-секторов, которые вы можете использовать. Ваш код выведет оптимальную схему ходов, чтобы убить гидру как можно быстрее
Каждый ход боя вы можете выбрать один меч для использования, если после среза у гидры есть только одна голова, которую вы выигрываете, если нет, у нее вырастают головы. Вы можете никогда не сделать ход, и если нет доступных ходов, вы потеряете.
Если решение невозможно, вы можете вывести что-либо кроме решения, например, пустой список, ничего, ноль и т. Д.
Это код-гольф, поэтому ответы будут оцениваться по мере подсчета байтов, при этом меньше будет лучше.
Контрольные примеры
Вот несколько супер базовых тест-кейсов, по запросу будет добавлено больше тест-кейсов.
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]