Вы самый лучший и самый известный герой области. В последнее время ходили слухи, что в соседнем ущелье тусуется гидра . Будучи храбрым и добродетельным героем, которым вы являетесь, вы поймете, что вы проверите это чуть позже сегодня.
Проблема с гидрами в том, что каждый раз, когда вы пытаетесь отрезать им голову, отрастают новые. К счастью для вас, у вас есть мечи, которые могут отрезать сразу несколько голов. Но есть одна загвоздка: если у гидры меньше голов, чем у ваших порезов мечом, вы не сможете атаковать гидру. Когда у гидры ровно ноль голов, вы ее убили.
Существует также специальный меч под названием Бисектор , который отрезает половину головы Гидры, но только если количество голов четное. Бисектор не может быть использован вообще, если количество голов нечетное. Это отличается от отрезания нулевых головок.
Итак, вы решили, что напишете компьютерную программу, чтобы выяснить лучший способ убить гидру.
задача
Вам будет дано в качестве ввода
- количество голов гидры начинается с
- количество голов Гидра отрастает каждый ход
- список мечей, доступных для использования каждый (каждый из которых является биссектрисом или режет фиксированное количество голов каждый ход)
Вы должны вывести список ходов, которые убьют гидру за наименьшее количество возможных ходов. Если нет способа убить гидру, вы должны вывести другое значение, указывающее на это (и пустой список подходит, если ваш язык строго типизирован). Если существует несколько оптимальных способов убить гидру, вы можете вывести любой из них или все.
Это вопрос по коду-гольфу, поэтому ответы будут оцениваться в байтах, при этом меньшее количество байтов будет лучше.
Тестовые случаи
Более доступны по запросу
5 heads, 9 each turn, [-1,-2,-5] -> [-5]
12 heads, 1 each turn, [/2,-1] -> No solution
8 heads, 2 each turn, [-9, -1] -> [-1,-9]
3 heads, 23 each turn, [/2,-1,-26] -> [-1,-1,-26,-26,-26,-26,-26,-26,-26,-26]
16 heads, 1 each turn, [/2, 4, 2] -> [/2,-4,/2,-4]
Этот вопрос является упрощенной версией основной механики HydraSlayer . Если вам нравится этот тип головоломки, я рекомендую проверить это, это довольно весело. Я не имею никакого отношения к игре.
[/2, -2, /2, -2, -4]
тоже работает.