Écrivez un programme pour prendre un graphique (à partir d'une entrée standard ou d'un fichier, votre choix) et trouvez le chemin le plus court dans le graphique.
Les graphiques sont spécifiés au format suivant:
A---S F--T
| / \ |
| / 5 0
|/ \|
D----3--E
A-Z: nodes in the graph
-|/\: edges in the graph
0-9: weights on the edges
<space>: all the holes
Tous les bords ne sont pas orientés et se trouvent le long de l'une des 8 directions cardinales (c.-à-d., Aucun pli). Les bords peuvent éventuellement contenir un poids de 0 à 9. Le poids ne sera pas sur le dernier symbole qui relie le bord à un nœud (c'est-à-dire que les bords doivent avoir au moins 3 symboles pour contenir un poids). Les bords non pondérés ont un poids par défaut de 1.
Votre code doit calculer le chemin le plus court entre les nœuds S
et T
et imprimer la longueur et le chemin, comme ceci:
5:SDEFT
Le programme correct le plus court gagne.
la source
AS0,SD0,SE5,DE3,FE0,FT0
(vous pouvez omettre les virgules si chaque entrée fait 3 octets de long.)Réponses:
Voici mon code, 494 caractères en python:
la source