cells: cells[i] = 1, если в клетке i лежит жетон, и 0, если она пуста. Нужно собрать ровно k жетонов.
В начале вы один раз выбираете клетку, где будете стоять, и дальше не сходите с неё. Если в этой клетке лежит жетон, вы забираете его сразу и бесплатно (клетка становится пустой). Потом за один ход можно сделать одно из двух:
- создать жетон в любой пустой клетке, кроме своей, — так можно сделать не больше max_spawns раз за всё время;
- сдвинуть жетон в соседнюю пустую клетку; если он попал в вашу клетку, вы тут же его забираете.
Верните наименьшее число ходов, за которое можно собрать k жетонов.cells=[1, 1, 0, 0, 1, 0, 1], k=3, max_spawns=0 → 4
Встаём в клетку 1: жетон под ногами забираем даром, жетон из клетки 0 подтягиваем за 1 ход, жетон из клетки 4 ведём три хода (4 → 3 → 2 → 1). Всего 4 хода.
cells=[0, 0, 0, 0], k=2, max_spawns=3 → 4
Настоящих жетонов нет: дважды создаём жетон рядом с собой и подтягиваем его — 2 × 2 = 4 хода.
cells=[1, 0, 0, 0, 0, 0, 1], k=2, max_spawns=1 → 2
cells=[1, 1, 0, 0, 1, 0, 1], k=3, max_spawns=0
4
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 98 тестов на сервере, включая скрытые.