- 21, Oct 2024
- #1
Давно ты не убивал эту гидру, ты годами грелся в славе, но теперь люди называют тебя выброшенным на чистую воду, это было. Что ж, пришло время доказать их неправоту: вы узнали о местонахождении еще одной гидры. Просто убейте его, и вы получите всю заслуженную славу.
Вы приходите в арсенал, чтобы получить свои мечи, но у них нет обычных мечей, и у них остались только Секторы. 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]
Вот несколько базовых тестовых примеров, дополнительные тестовые примеры будут добавлены по запросу.