Routenoptimierung mit Strukturen und Prioritätswarteschlange

Swift Hard structs

Aufgabe «Routenoptimierung mit Strukturen und Prioritätswarteschlange»

Entwickeln Sie eine Struktur `Route`, die eine Route mit den Feldern `startCity` (String), `endCity` (String), `distance` (Int) und `priority` (Int) darstellt. Implementieren Sie die Funktion `optimizeRoutes`, die ein Array von Routen entgegennimmt und ein nach aufsteigender Entfernung sortiertes Array von Routen zurückgibt, bei gleicher Entfernung absteigend nach Priorität. Geben Sie anschließend für jede Route deren Beschreibung im Format "{startCity} -> {endCity}: {distance} km (priority {priority})" aus. Wenn das Array leer ist, geben Sie "No routes" aus. Verwenden Sie nur Strukturen und eingebaute Sortieralgorithmen, keine Klassen.

Eingabeformat

Die erste Zeile enthält eine ganze Zahl N (1 ≤ N ≤ 100) — die Anzahl der Routen. Danach folgen N Zeilen, jede enthält vier durch Leerzeichen getrennte Werte: startCity (Zeichenkette ohne Leerzeichen, bis zu 20 Zeichen), endCity (Zeichenkette ohne Leerzeichen, bis zu 20 Zeichen), distance (ganze Zahl von 1 bis 10000), priority (ganze Zahl von 1 bis 100).

Ausgabeformat

Geben Sie N Zeilen aus, jede im Format "{startCity} -> {endCity}: {distance} km (priority {priority})", sortiert nach der Regel. Wenn N=0 ist, geben Sie "No routes" aus.

Beispiele

Beispiel 1

EINGABE
3 X Y 1000 10 Y Z 500 10 Z X 750 10
AUSGABE
Y -> Z: 500 km (priority 10) Z -> X: 750 km (priority 10) X -> Y: 1000 km (priority 10)

Beispiel 2

EINGABE
1 Start End 1 100
AUSGABE
Start -> End: 1 km (priority 100)
main.swift