Până nu demult, în Bucovina existau doar oraşe conectate între ele prin şosele bidirecţionale. Cu toate acestea, se putea ajunge din orice oraş în orice alt oraş mergând pe una sau mai multe şosele.
Când Ştefan trebuia să facă un anunţ important, el trimitea mesajul către fiecare dintre cei mesageri ai săi. Fiecare mesager, după primirea mesajului de la Ştefan, pleacă să transmită mesajul primit pe o rută fixată. Mai exact, mesagerul va transmite mesajul în toate oraşele situate pe ruta care porneşte din oraşul şi ajunge în oraşul . Pentru a transmite mesajul în toate oraşele de pe ruta sa, mesagerul va primi galbeni.
Cerinţă
Care este număr minim de galbeni pe care Ştefan trebuia să-l plătească pentru ca mesajul său să ajungă în toate cele oraşe din Bucovina?
Date de intrare
Fişierul de intrare mesaj.in
conţine pe prima linie numărul natural , reprezentând numărul de oraşe din Bucovina. Următoarele linii conţin câte două numere naturale distincte separate printr-un spaţiu cu semnificaţia "există o şosea care conectează direct oraşele şi ". Pe linia este scris un număr natural reprezentând numărul de mesageri. Pe următoarele linii se află informaţii despre cei mesageri. Pe cea de a -a linie dintre cele sunt scrise trei numere naturale separate prin câte un spaţiu , cu semnificaţia "mesagerul parcurge ruta de la oraşul la oraşul , fiind plătit cu galbeni".
Date de ieșire
Fişierul de ieşire mesaj.out
va conţine o singură linie pe care va fi scris numărul minim de galbeni pe care trebuie să-i plătească Ştefan, pentru ca mesajul să fie transmis în toate cele oraşe.
Restricții și precizări
- , pentru orice
- , pentru orice
- Nu vor exista mai mult de mesageri care să treacă prin acelaşi oraş.
Exemplu
mesaj.in
10
1 2
1 3
3 4
3 5
5 6
5 7
5 8
2 9
2 10
9
8 6 10
10 9 10
1 4 30
4 1 10
7 8 50
1 7 10
6 1 10
10 1 10
9 1 10
mesaj.out
40
Explicație
Suma minimă necesară este de de galbeni.
Sunt necesari mesageri, cu rutele:
Există şi alte soluţii, dar pentru acestea suma necesară este mai mare.