Ви найкращий і найвідоміший герой області. Останнім часом ходили чутки, що в сусідньому яру висіла гідра . Будучи сміливим і доброчесним героєм, який ви є, ви зрозумієте, що ви підете перевірити це десь пізніше сьогодні.
Проблема гідри полягає в тому, що кожного разу, коли ви намагаєтеся відрізати їм голови, нові нові відростають. На щастя, у вас є мечі, які можуть відрізати відразу кілька голів. Але є улов, якщо у гідри менше головок, ніж у твого різання меча, ти не зможеш напасти на гідру. Коли у гідри рівно нульові голови, ти її вбив.
Існує також спеціальний меч під назвою «Бісектриса», який відріже половину голів гідри, але тільки якщо кількість голів буде парною. Бісектрису взагалі не можна використовувати, коли кількість головок непарна. Це відрізняється від відрізання нульових головок.
Тож ви вирішили написати комп’ютерну програму, щоб визначити найкращий спосіб вбити гідру.
Завдання
Вам буде подано як вхід
- кількість головок, з яких починається гідра
- кількість голів Hydra відновлює кожен виток
- список мечів, доступних для використання кожен (кожен з них є бісектрисою або ріже фіксовану кількість голів кожного витка)
Вам слід вивести список рухів, які вб'ють гідру за найменшу кількість можливих оборотів. Якщо немає можливості вбити гідру, ви повинні вивести якесь інше значення, що вказує так (і порожній список добре, якщо ваша мова сильно набрана). Якщо існує кілька оптимальних способів вбити гідру, ви можете вивести будь-який з них або всі вони.
Це питання з кодовим гольфом, тому відповіді будуть набиратись у байтах, меншою кількістю байтів буде краще.
Випробування
Більш доступні за запитом
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]
також працює.