Signal kreće sa jednog računara u mreži i širi se komunikacionim kanalima do svakog drugog računara do kog može da stigne, neposredno ili preko drugih računara. Svaki kanal je jednosmeran i signalu treba poznato vreme da ga pređe.
Svaki računar prosleđuje signal dalje čim ga primi, pa do svakog računara signal stiže onim putem kojim najranije može. Mreža je gotova kad signal primi i poslednji računar.
Napiši program koji određuje koliko je vremena potrebno da signal stigne do svih računara u mreži.
Ulaz
U prvoj liniji ulaza je jedan ceo broj - broj test primera.
U prvoj liniji svakog test primera su dva cela broja i - broj računara i broj kanala.
U svakoj od sledećih linija su tri cela broja , i - kanal koji vodi od računara do računara , a signalu treba vremena da ga pređe. Taj kanal ne nosi signal od do .
U poslednjoj liniji test primera je jedan ceo broj - računar sa kog signal kreće.
Računari su označeni brojevima od do . Između istog para računara može postojati više kanala, a kanal može voditi i sa računara na samog sebe.
Izlaz
Za svaki test primer ispiši u posebnoj liniji vreme koje je signalu potrebno da stigne do svih računara, ili ako do nekog računara uopšte ne može da stigne.
Primer
3 5 7 1 2 7 1 3 3 1 5 6 2 1 2 3 5 2 4 2 3 5 4 1 1 3 1 1 2 5 1 1 1 1 1 4 1
7 -1 0
U prvom test primeru signal stiže do računara za , a do računara za - put je bolji od direktnog kanala, koji košta . Odatle se do računara stiže za , a do računara za , direktnim kanalom, jer bi put preko koštao . Poslednji stiže u trenutku .
U drugom test primeru do računara ne vodi ništa, pa je rešenje . U trećem signal kreće sa jedinog računara i već je tu, pa mu ne treba nimalo vremena.
Ograničenja
i
Zbir preko svih test primera ne prelazi , a zbir ne prelazi
Zadatak je, uz dozvolu, preuzet iz zadatka Kašnjenje signala, čiji su autori Društvo matematičara Srbije i Fondacija Petlja.