Cerință
Gigi este un pasionat de plimbări cu mașina. Îi place foarte mult să se plimbe cu mașina între orașe. Aceste orașe sunt conectate de drumuri a căror lungime este cunoscută. Drumurile sunt bidirecționale (dacă există un drum de km de la orașul la , atunci același drum poate fi folosit și de la la ). Chiar dacă Gigi este un pasionat, nu își dorește să petreacă toată ziua conducând. Pentru asta, el a găsit următoarea soluție: vrea să afle pentru fiecare oraș care este cea mai scurtă rută interesantă pe care o poate urma. O rută interesantă este definită ca o rută care pleacă dintr-un oraș, să îl numim , și care se întoarce tot în orașul , dar fără să meargă pe același drum de 2 ori.
Cunoscând – numărul de orașe, – numărul de drumuri și descrierea celor drumuri în formatul (, și – reprezintă un drum de la la de cost ) se cere să îl ajutați pe Gigi să găsească cea mai scurtă rută interesantă pe care o poate avea, din fiecare oraș în parte.
Date de intrare
Pe prima linie a fișierului de intrare plimbare.in
se găsesc și .
Pe următoarele M linii se găsesc câte trei numere , si , reprezentând descrierea fiecărei muchii.
Date de ieșire
Pe prima linie a fișierului de ieșire plimbare.out
se vor găsi numere, care reprezintă lungimea minimă a unei rute interesante pentru fiecare oraș. Dacă nu există o rută interesantă pentru un oraș, atunci pentru orașul respectiv se va afișa -1
.
Restricții și precizări
- Pentru din teste, și ;
- Pentru din teste, și ;
- Costul unei rute nu va depăși ;
- Orașele sunt numerotate de la la .
Exemplu
plimbare.in
5 7
0 1 5
0 2 4
1 2 14
1 4 1
4 2 4
4 3 2
2 3 1
plimbare.out
13 13 7 7 7
Explicație
Pentru nodul , drumul interesant de lungime minimă este 0-2-3-4-1-0
cu lungimea .
Pentru nodul , drumul interesant de lungime minimă este 1-4-3-2-0-1
cu lungimea .
Pentru nodul , drumul interesant de lungime minimă este 2-3-4-2
cu lungimea .
Pentru nodul , drumul interesant de lungime minimă este 3-2-4-3
cu lungimea .
Pentru nodul , drumul interesant de lungime minimă este 4-3-2-4
cu lungimea .