James Bond (JB) are o nouă misiune: trebuie să distrugă planete bidimensionale, pe care se află baze secrete (evident nu şi pentru JB) ale răufăcătorilor. Fiecare planetă are forma unui cerc, având pe circumferinţa sa un anumit număr de baze secrete.
JB va trebui să plaseze câte o singură bombă pe fiecare planetă. Bomba poate fi plasată în oricare dintre bazele secrete ale planetei. După plasarea bombei, JB se deplasează spre o altă planetă în linie dreaptă, putând ateriza doar într-una din bazele secrete ale acesteia. După ce aterizează pe o nouă planetă, JB poate să se deplaseze sau nu pe circumferinţa acesteia până la oricare altă bază secretă, după care va plasa o bombă şi va pleca spre o altă planetă.
JB nu poate reveni pe o planetă pe care a aterizat anterior.
JB are la dispoziţie trei vehicule de transport:
- teleportatorul: cu ajutorul căruia se poate deplasa între oricare două baze secrete de pe planete diferite.
- dietatietorul: cu ajutorul căruia se poate deplasa între oricare două baze secrete de pe planete diferite, dacă drumul nu intersectează interioarele planetelor de plecare şi/sau destinaţie. El poate intersecta suprafaţa altor planete. (vezi desenele de mai jos)
- deltaplanorul: cu ajutorul acestuia se poate deplasa între oricare două baze secrete de pe planete diferite, dacă drumul nu intersectează nicio planetă (inclusiv cea de plecare si cea de destinaţie).
Oricare ar fi vehiculul folosit, JB se va mişca între două baze ale aceleiaşi planete doar pe circumferinţa cercului, iar distanţa totală parcursă va fi suma lungimilor drumurilor curbilinii împreună cu lungimea drumurilor drepte parcurse.
În misiune, JB poate folosi doar unul dintre cele trei vehicule de transport. El vă roagă pe voi să-i calculaţi distanţa minimă pe care ar trebui să o parcurgă cu ajutorul fiecărui vehicul diponibil.
Eroul nostru îşi poate începe misiunea pe orice bază a oricărei planete. Misiunea se va încheia imediat ce au fost plasate bombe pe toate planetele. În acel moment JB le va distruge prin declanşarea simultană a tuturor bombelor.
Cerință
Determinaţi cele trei distanţe minime.
Date de intrare
Pe prima linie a fişierului jb.in
se află - numărul de planete. Pe următoarele linii sunt descrise cele planete, câte două linii pentru fiecare planetă. Pe prima linie se găsesc patru numere: , reprezentând coordonatele centrului, raza, şi numărul de baze secrete de pe planeta .
Pe a doua linie se găsesc perechi de numere reale, reprezentând coordonatele bazelor de pe planeta .
Date de ieșire
Fişierul de ieşire jb.out
va conţine pe prima linie trei numere, reprezentând costurile minime în cazul folosirii teleportatorului, dietatietorului respectiv a deltaplanorului.
Restricții și precizări
- Dacă nu există nicio soluţie pentru un anumit vehicul, afişaţi .
- Numerele se vor afişa cu zecimale.
- În cele zece teste va lua următoarele valori:
- Pentru fiecare test se vor acorda: puncte dacă primul număr este corect, puncte dacă al doilea număr este corect şi puncte daca al treilea număr este corect.
- Un număr se consideră corect dacă diferă prin cel mult de valoarea corectă.
Exemplu
jb.in
3
100 100 10 4
90 100 100 110 110 100 100 90
0 50 10 3
-10 50 0 60 0 40
0 100 10 2
10 100 -10 100
jb.out
121.231056 161.415927 161.415927