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

Самый дешёвый перелёт

ЛёгкаяРеализацияГлава 7

#алгоритм Дейкстры#взвешенный графid: ga-cheapest-flight

Цены авиабилетов заданы взвешенным графом: flights[a][b] — цена прямого рейса из a в b. Напишите cheapest(flights, start, goal): функция возвращает минимальную суммарную цену перелёта из start в goal, возможно с пересадками, или math.inf, если долететь нельзя.

Пример

flights = {
    "Москва": {"Стамбул": 9000, "Дубай": 15000},
    "Стамбул": {"Дубай": 4000, "Бангкок": 21000},
    "Дубай": {"Бангкок": 11000},
}
cheapest(flights, "Москва", "Бангкок")   # 24000: Москва → Стамбул → Дубай → Бангкок
cheapest(flights, "Бангкок", "Москва")   # inf

Ограничения

Решение

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

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