Оптимизация маршрута с помощью структур и очереди приоритетов
Swift
Сложный
structs
Задача «Оптимизация маршрута с помощью структур и очереди приоритетов»
Разработайте структуру `Route`, представляющую маршрут с полями: `startCity` (String), `endCity` (String), `distance` (Int) и `priority` (Int). Реализуйте функцию `optimizeRoutes`, которая принимает массив маршрутов и возвращает отсортированный массив маршрутов по возрастанию расстояния, а при равном расстоянии — по убыванию приоритета. Затем для каждого маршрута выведите его описание в формате: "{startCity} -> {endCity}: {distance} km (priority {priority})". Если массив пустой, выведите "No routes". Используйте только структуры и встроенные алгоритмы сортировки, без классов.
Формат ввода
Первая строка содержит целое число N (1 ≤ N ≤ 100) — количество маршрутов. Затем следуют N строк, каждая содержит четыре значения, разделённые пробелом: startCity (строка без пробелов, до 20 символов), endCity (строка без пробелов, до 20 символов), distance (целое число от 1 до 10000), priority (целое число от 1 до 100).
Формат вывода
Выведите N строк, каждая в формате "{startCity} -> {endCity}: {distance} km (priority {priority})", отсортированных по правилу. Если N=0, выведите "No routes".
Примеры
Пример 1
ВВОД
3
X Y 1000 10
Y Z 500 10
Z X 750 10
ВЫВОД
Y -> Z: 500 km (priority 10)
Z -> X: 750 km (priority 10)
X -> Y: 1000 km (priority 10)
Пример 2
ВВОД
1
Start End 1 100
ВЫВОД
Start -> End: 1 km (priority 100)
main.swift