n камней с номерами от 1 до n. Встать на камень i стоит fees[i - 1] монет; если fees[i - 1] = -1, камень затоплен и на него вставать нельзя. Первый камень никогда не затоплен.
Вы стоите на камне 1 и уже заплатили за него. С камня i можно прыгнуть на камень i + d, где 1 ≤ d ≤ max_jump и i + d ≤ n. Нужно добраться до камня n, заплатив в сумме как можно меньше (включая первый и последний камни).
Верните номера камней на самом дешёвом пути в порядке посещения. Если таких путей несколько, верните лексикографически наименьший: сравниваем списки по первому различающемуся элементу, а если один список — начало другого, меньше тот, что короче. Если до камня n не добраться, верните пустой список.fees=[2, 5, 1, 3, 1, 4], max_jump=2 → [1, 3, 5, 6]
Камни 1 → 3 → 5 → 6 стоят 2 + 1 + 1 + 4 = 8 — дешевле не получится.
fees=[1, 0, 0, 1], max_jump=3 → [1, 2, 3, 4]
Пути 1 → 4, 1 → 2 → 4 и 1 → 2 → 3 → 4 стоят по 2. Сравниваем по второму элементу: у двух последних там 2, у первого 4. Затем [1, 2, 3, 4] меньше [1, 2, 4] по третьему элементу.
fees=[3, -1, -1, 2], max_jump=2 → []
С первого камня можно прыгнуть только на камни 2 и 3, а оба затоплены.
fees=[2, 5, 1, 3, 1, 4], max_jump=2
[1, 3, 5, 6]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 102 теста на сервере, включая скрытые.