Civilizația avansată a moisiliștilor trăiește în Galaxia G. care este compusă din corpuri cerești, numerotate de la la . Acestea sunt de două tipuri: planete și sateliți, fiecare corp având atribuită o gravitație (). Între două corpuri cerești poate exista un lift care face posibilă deplasarea între ele. Energia necesară deplasării cu liftul între două corpuri, și , este calculată astfel:
- Dacă ambele corpuri sunt planete, costul energetic este egal cu valoarea celui mai mic multiplu comun al gravitațiilor acestora ( );
- Dacă un corp este o planetă iar celălalt este un satelit, costul energetic este egal cu valoarea celui mai mare divizor comun între gravitațiile acestora ( );
- Între doi sateliți, costul energetic va fi mereu .
Tragic, o planetă a fost infectată cu un virus foarte contagios. Dacă o planetă este infectată, atunci toate planetele conectate printr-un lift vor fi, la rândul lor, infectate după o zi de la infectarea planetei (dacă nu sunt deja infectate). Din fericire, sateliții nu pot fi infectați și nici nu pot răspândi virusul, aceștia nefiind suficient de populați. Prin urmare, regina Galaxiei G. alege o planetă drept refugiu și își dorește să afle constul energetic minim necesar pentru a se deplasa de la aceasta la orice altă planetă.
Cerințe
Regina, fiind ocupată cu alte lucruri, îi porunceste lui Rareș, moisilian priceput, să afle:
- Fiind specificată planeta din care începe răspandirea infecției în ziua , după câte zile vor fi infectate celelalte planete?
- Fiind aleasă planeta ca refugiu de către regină, care este costul energetic minim necesar pentru a ajunge de la planeta la oricare altă planetă?
Date de intrare
În fișierul de intrare galaxia.in
avem:
- Prima linie conține numărul , care va avea valoarea , respectiv , indicând cerința care trebuie rezolvată
- A doua linie conține numerele și , care reprezintă numărul de corpuri cerești, respectiv numărul de lifturi dintre corpuri;
- Pe următoarele linii se dau câte două numere, și , care reprezintă tipul corpului ceresc ( pentru planetă, pentru satelit) și gravitația acestuia (pe linia se găsesc tipul și gravitația corpului );
- Pe următoarele linii se regasesc câte două numere, și , semnificând că exista un lift între corpurile și ;
- Pe ultima linie se dă valoarea , care reprezintă:
- Indicele planetei de la care începe infecția, dacă ;
- Indicele planetei alese de regină drept refugiu, dacă .
Date de ieșire
În fișierul de ieșire galaxia.out
avem:
- Dacă , se va afișa mai întâi , numărul de planete, și pe următoarele linii se vor afișa, cu spațiu între ele, și , semnificând că planeta va fi infectată după zile. (în cazul în care planeta nu va fi infectată niciodată, );
- Dacă , se va afișa mai întai , numărul de planete, și pe următoarele linii se vor afișa, cu spațiu între ele, si , semnificând că, pentru a ajunge la planeta , costul energetic minim necesar este (dacă , ).
Restricții și precizări
- Pentru ambele cerințe, planetele trebuiesc afișate în ordine crescătoare
- Se dă cel puțin o planetă ()
- , unde
- Corpul cerest cu indicele va fi întotdeauna planetă.
- Putem să ne deplasăm de la oricare corp ceresc la oricare corp , cu condiția
# | Punctaj | Restricții |
---|---|---|
1 | 20 | |
2 | 30 | |
3 | 30 | |
4 | 20 |
Exemplul 1
galaxia.in
1
9 13
0 5
1 8
1 2
0 7
0 9
1 10
0 3
1 20
1 14
1 2
1 3
1 4
2 4
3 5
3 7
4 5
4 6
4 8
4 9
5 8
6 7
6 8
6
galaxia.out
5
2 -1
3 -1
6 1
8 2
9 -1
Exemplul 2
galaxia.in
2
9 13
0 5
1 8
1 2
0 7
0 9
1 10
0 3
1 20
1 14
1 2
1 3
1 4
2 4
3 5
3 7
4 5
4 6
4 8
4 9
5 8
6 7
6 8
6
galaxia.out
5
2 2
3 2
6 0
8 2
9 8
Explicație
- Corpurile verzi cu numărul în bold sunt planetele iar corpurile roșii cu numărul în italic sunt sateliții; în imagine sunt evidențiate costurile energetice între corpurile cerești.
În primul exemplu cerința este și este infectată în ziua . Doar planeta este conectată de planeta , deci planeta va fi infectată in ziua . Infecția nu ajunge la celelalte planete deoarece planetele și sunt izolate de ele prin sateliții , și .
În al doilea exemplu cerința este deci trebuie să aflăm costul de energie minim necesar pentru a ajunge de la fiecare planetă la planeta . Astfel, drumul are costul , drumul are costul , drumul are costul și drumul are costul .