Feu un programa que, donat un graf dirigit amb pesos que poden ser 1, 2 o 3, calculi el cost mínim d’anar del vèrtex 0 a la resta de vèrtexs.
Qui resolgui aquest problema amb l’algorisme de Dijkstra obtindrà com a molt un 7, perquè hi ha una manera asimptòticament millor.
L’entrada consisteix en diversos casos. Cada cas comença amb el nombre de vèrtexs i el nombre d’arcs . Segueixen triplets indicant un arc de cost , amb i . Assumiu , , i que entre tot parell de vèrtexs i hi ha com a molt un arc . Els vèrtexs es numeren entre 0 i .
Per a cada cas, i per a cada vèrtex
,
escriviu el cost mínim d’anar de 0 fins a
.
Si és impossible, escriviu “no”. Escriviu una línia amb 10
guions al final de cada cas.
Input
8 9 0 6 1 0 7 2 0 4 3 6 0 2 6 1 1 5 6 2 1 2 1 7 2 2 4 2 3 3 3 0 2 1 0 1 3 2 1 1
Output
0 : 0 1 : 2 2 : 3 3 : no 4 : 3 5 : no 6 : 1 7 : 2 ---------- 0 : 0 1 : 2 2 : 1 ----------