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

Дороги в обе стороны

СредняяРеализацияГлава 7

#алгоритм Дейкстры#неориентированный граф#хеш-таблицыid: ga-road-trip

Карта дорог задана списком троек (город1, город2, минуты). Дороги двусторонние, между двумя городами их может быть несколько, бывают и бесплатные по времени переезды (0 минут). Напишите travel_time(roads, start, goal): функция возвращает минимальное время в пути или None, если добраться нельзя.

Пример

roads = [
    ("Тула", "Москва", 150),
    ("Москва", "Тверь", 120),
    ("Тула", "Калуга", 90),
    ("Калуга", "Москва", 40),
    ("Тула", "Москва", 200),
]
travel_time(roads, "Тула", "Тверь")   # 250: Тула → Калуга → Москва → Тверь
travel_time(roads, "Тверь", "Тула")   # 250 — дороги двусторонние

Решение

def travel_time(roads: list[tuple[str, str, int]], start: str, goal: str) -> int | None:
    """Минимальное время из start в goal по двусторонним дорогам или None."""
    # ваш код
    raise NotImplementedError

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