Camí de cost mínim P64800


Statement
 

pdf   zip

Escriviu un programa que, donat un graf dirigit amb costs positius als arcs, i dos vèrtexs xxyy, calculi un camí de cost mínim per anar des d’xx fins a yy. Si n’hi ha més d’un, cal triar el més petit en ordre lexicogràfic.

Entrada

L’entrada consisteix en diversos casos. Cada cas comença amb el nombre de vèrtexs nn i el nombre d’arcs mm. Segueixen mm triplets uu vv cc que indiquen que hi ha un arc uvu \to v de cost cc, amb uvu \ne v i 1c10001 \le c \le 1000. Finalment, tenim xx i yy. Assumiu 1n1041 \le n \le 10^4, 0m5n0 \le m \le 5n, i que per a tot parell de vèrtexs uu i vv hi ha com a molt un arc uvu \to v. Tots els nombres són enters. Els vèrtexs es numeren entre 0 i n1n-1.

Sortida

Per a cada cas, escriviu el cost del camí més barat per anar des d’xx fins a yy, seguit d’aquest camí. Si n’hi ha més d’un, escolliu el lexicogràficament més petit. Si no hi ha cap camí des d’xx fins a yy, indiqueu-ho.

Pista

Comenceu en yy.

Public test cases
  • Input

    6 10
    1 0 6  1 5 15  3 4 3  3 1 8  4 0 20
    0 5 5  0 2 1  5 1 10  4 1 2  2 3 4
    3 5
    
    2 1
    0 1 1000
    1 0
    
    6 8
    4 0 7  0 2 3  4 3 5  3 2 4
    4 2 9  4 1 3  1 5 3  5 2 3
    4 2
    
    2 0
    1 1
    

    Output

    cost 16: 3 4 1 0 5
    no
    cost 9: 4 1 5 2
    cost 0: 1
    
  • Information
    Author
    Salvador Roura
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++