Optimisation de l’itinéraire à l’aide de structures et d’une file de priorité

Swift Hard structs

Tâche «Optimisation de l’itinéraire à l’aide de structures et d’une file de priorité»

Développez une structure `Route` représentant un itinéraire avec les champs : `startCity` (String), `endCity` (String), `distance` (Int) et `priority` (Int). Implémentez la fonction `optimizeRoutes` qui prend un tableau d’itinéraires et retourne un tableau d’itinéraires triés par ordre croissant de distance, et à distance égale, par ordre décroissant de priorité. Ensuite, pour chaque itinéraire, affichez sa description au format : "{startCity} -> {endCity}: {distance} km (priority {priority})". Si le tableau est vide, affichez "No routes". Utilisez uniquement des structures et des algorithmes de tri intégrés, sans classes.

Format d\ entrée

La première ligne contient un entier N (1 ≤ N ≤ 100) — le nombre d’itinéraires. Ensuite suivent N lignes, chacune contenant quatre valeurs séparées par un espace : startCity (chaîne sans espaces, jusqu’à 20 caractères), endCity (chaîne sans espaces, jusqu’à 20 caractères), distance (entier de 1 à 10000), priority (entier de 1 à 100).

Format de sortie

Affichez N lignes, chacune au format "{startCity} -> {endCity}: {distance} km (priority {priority})", triées selon la règle. Si N=0, affichez "No routes".

Exemples

Exemple 1

ENTRÉE
3 X Y 1000 10 Y Z 500 10 Z X 750 10
SORTIE
Y -> Z: 500 km (priority 10) Z -> X: 750 km (priority 10) X -> Y: 1000 km (priority 10)

Exemple 2

ENTRÉE
1 Start End 1 100
SORTIE
Start -> End: 1 km (priority 100)
main.swift