Ctrl K

Поездки на одном баке

Сложная
Вдоль трассы стоят заправочные стоянки, stops[i] — координата стоянки i (все координаты различны). Вы стоите на стоянке origin с fuel единицами топлива, а приехать нужно на стоянку target. Заправиться по пути нельзя. За один переезд можно отправиться с текущей стоянки i на любую другую стоянку j; это тратит |stops[i] - stops[j]| топлива. Топливо не может уйти в минус. Стоянки, включая origin и target, можно посещать сколько угодно раз. Маршрут — это последовательность стоянок, которая начинается в origin и заканчивается в target. Посчитайте количество различных маршрутов. Ответ может быть большим — верните его по модулю 10⁹ + 7.
Пример 1
stops=[1, 4, 6], origin=0, target=2, fuel=5 → 2

Подходят два маршрута: 0 → 2 (5 единиц топлива) и 0 → 1 → 2 (3 + 2 = 5). Любой другой маршрут требует больше топлива.

Пример 2
stops=[10, 12], origin=0, target=0, fuel=4 → 2

Можно никуда не ехать (маршрут из одной стоянки 0) или съездить 0 → 1 → 0, потратив 4. Итого 2.

Пример 3
stops=[3, 20, 7], origin=1, target=0, fuel=16 → 0

Даже прямой путь от 20 до 3 стоит 17 — топлива не хватает.

Ограничения
  • 2 ≤ len(stops) ≤ 100
  • 1 ≤ stops[i] ≤ 10⁹, все значения различны
  • 0 ≤ origin, target < len(stops)
  • 1 ≤ fuel ≤ 200
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиВсе способы расставить пробелы СложнаяСамый длинный подъём по карте СложнаяРасчистка цветных кубиков СложнаяПятнашки на шесть клеток СложнаяРазрезать торт с ягодами Сложная
загружаем Python…
Вход
stops=[1, 4, 6], origin=0, target=2, fuel=5
Ожидается
2

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 63 теста на сервере, включая скрытые.