Нашли ошибку?

Не больше k перелётов

СложнаяРеализацияГлава 7

#алгоритм Дейкстры#состояния#модификация алгоритмаid: ga-limited-flights

Рейсы заданы графом цен flights[a][b]. Путешественник готов сделать не больше max_flights перелётов. Напишите cheapest_limited(flights, start, goal, max_flights): функция возвращает минимальную цену с этим ограничением или None, если уложиться нельзя.

Пример

flights = {
    "A": {"B": 100, "D": 500},
    "B": {"C": 100},
    "C": {"D": 100},
}
cheapest_limited(flights, "A", "D", 3)   # 300: A → B → C → D
cheapest_limited(flights, "A", "D", 2)   # 500: трём перелётам нельзя — летим напрямую
cheapest_limited(flights, "A", "C", 1)   # None

Ограничения

Решение

def cheapest_limited(flights: dict[str, dict[str, int]], start: str, goal: str, max_flights: int) -> int | None:
    """Минимальная цена из start в goal не больше чем за max_flights перелётов или None."""
    # ваш код
    raise NotImplementedError

Можно решать и в своём редакторе: «Скопировать с тестами» и запустите python3 limited_flights.py — тесты те же, результат покажет ✓ / ✗ и итог.