Supărați că lansarea părții a treia a filmului lor preferat s-a amânat până în iunie 2018, Henry și Hetty s-au gândit la propriul scenariu pentru finalul trilogiei:
Într-o lume în care vikingii pot zbura cu dragonii există N insule. Hiccup, șeful tribului de vikingi aflat pe insula 1, știe M rute directe de zbor bidirecționale între insule. Pentru fiecare j intre 1 si M, ruta j unește insulele și și are lungime .
Pe fiecare insulă i (1 ≤ i ≤ n), există dragoni din specia i care pot zbura fără a se opri pentru odihnă o distanță maximă . Cu alte cuvinte, dragonii de pe insula i vor putea parcurge orice rută j(1 ≤ j ≤ m), pentru care , indiferent de ce alte drumuri au făcut anterior.
Hiccup dorește să ajungă de pe insula 1 pe insula N pentru a-l salva pe Toothless, dragonul lui. Pentru a ajunge acolo, el va lua inițial un dragon din specia 1 (de pe insula 1). Apoi, dacă la un moment dat Hiccup se află pe o insula i (1 ≤ i ≤ n), având cu el un dragon din specia t, el poate:
- Să zboare de pe insula
ipe o altă insulăxcu dragonul pe care îl are, folosind o rută directăjîntre insuleleisix, bineînțeles doar dacă . - Să schimbe dragonul din specia
tpe care îl are cu un dragon din speciaiaflat pe insula respectivă.
Cerințe
a. Să se determine distanța maxima caracteristică unui dragon la care Hiccup poate ajunge fără a schimba dragonul pe care l-a luat inițial de pe insula 1.
b. Să se determine distanța minimă pe care Hiccup trebuie să o parcurgă pentru a ajunge de pe insula 1 pe insula N.
Date de intrare
Fişierul de intrare dragoni.in conţine pe prima linie un număr natural p. Pentru toate testele de intrare, numărul p poate avea doar valoarea 1 sau valoarea 2. Pe a doua linie se găsesc două numere naturale N și M reprezentând numărul de insule, respectiv numărul de rute directe între insule. Pe a treia linie se găsesc N numere naturale, al i-ulea dintre acestea reprezentând distanta maximă pe care o poate zbura un dragon de pe insula i. Pe următoarele M linii sunt descrise cele M rute directe. Pe fiecare dintre aceste linii se găsesc câte trei numere naturale A, B și D cu semnificația că există rută bidirecțională de lungime D între insulele A și B .
Date de ieșire
In fişierul de ieşire dragoni.out se va afișa un singur numar natural.
Dacă valoarea lui p este 1, se rezolvă numai cerința a.
În acest caz numărul afișat va reprezenta distanța maximă a unui dragon i la care Hiccup poate ajunge fără a schimba dragonul pe care l-a luat inițial de pe insula 1.
Daca valoarea lui p este 2, se va rezolva numai cerința b,
În acest caz numărul afișat va reprezenta distanța minima pe care Hiccup trebuie să o parcurgă pentru a ajunge de pe insula 1 pe insula N.
Restricții
1 ≤ N ≤ 8001 ≤ M ≤ 6 000- , pentru orice
1 ≤ i ≤ N. - , pentru orice
1 ≤ j ≤ M. - , pentru orice
1 ≤ j ≤ M. - Se garantează că Hiccup poate ajunge pe insula
N. - Se garantează că răspunsul oricărei cerințe este un număr natural mai mic decât .
- Pentru rezolvarea corectă a primei cerințe se acordă
20%din punctajul testului respectiv. - Pentru rezolvarea corectă a celei de-a doua cerințe se acordă
80%din punctajul testului respectiv.
Exemple
dragoni.in
1
5 6
6 3 13 20 26
1 2 5
1 3 7
1 5 10
2 3 6
3 4 5
3 5 14
dragoni.out
20
dragoni.in
2
5 6
6 3 13 20 26
1 2 5
1 3 7
1 5 10
2 3 6
3 4 5
3 5 14
dragoni.out
28
Explicații
Pentru primul test:
P = 1 deci se va rezolva cerința a).
Există N = 5 insule si M = 6 rute între ele. Hiccup pornește de pe insula 1 având un dragon care poate zbura o distanță de maxim 6. Cu acest dragon poate ajunge doar pe insulele 1, 2, 3 si 4, întrucât pentru a ajunge pe insula 5 el ar fi obligat sa parcurgă o ruta de lungime mai mare decât 6.
Distanta maxima pe care o poate zbura un dragon aflat pe insulele 1, 2, 3 sau 4 este deci 20 (dragonul de pe insula 4). Se observă că dragonul care poate zbura o distanță de 26 se afla pe insula 5 și este inaccesibil.
Pentru al doilea test:
P = 2 deci se va rezolva cerința b).
Există N = 5 insule și M = 6 rute între ele. Pentru a parcurge o distanță minimă de 28 între insulele 1 și N, Hiccup face următorii pași:
Zboară de pe insula 1 pe insula 2 o distanță de 5 cu dragonul din specia 1.
Zboară de pe insula 2 pe insula 3 o distanță de 6 cu dragonul din specia 1.
Schimbă dragonul din specia 1 cu dragonul aflat pe insula 3, care poate zbura o distanță maximă de 13.
Zboară de pe insula 3 pe insula 1 o distanță de 7 cu dragonul din specia 3.
Zboară de pe insula 1 pe insula 5 o distanță de 10 cu dragonul din specia 3.
În total el parcurge o distanță de 5 + 6 + 7 + 10 = 28.