jb

Time limit: 0.4s Memory limit: 64MB Input: jb.in Output: jb.out

James Bond (JB) are o nouă misiune: trebuie să distrugă NN 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ă NN - numărul de planete. Pe următoarele 2N2 \cdot N linii sunt descrise cele NN planete, câte două linii pentru fiecare planetă. Pe prima linie se găsesc patru numere: Xi Yi Ri BiX_i \ Y_i \ R_i \ B_i, reprezentând coordonatele centrului, raza, şi numărul de baze secrete de pe planeta ii.
Pe a doua linie se găsesc BiB_i perechi de numere reale, reprezentând coordonatele bazelor de pe planeta ii.

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

  • 1N101 \leq N \leq 10
  • 1Bi501 \leq Bi \leq 50
  • 1 000 000Xi,Yi1 000 000-1 \ 000 \ 000 \leq X_i, Y_i \leq 1 \ 000 \ 000
  • 0Ri100 0000 \leq R_i \leq 100 \ 000
  • Dacă nu există nicio soluţie pentru un anumit vehicul, afişaţi 1-1.
  • Numerele se vor afişa cu 66 zecimale.
  • În cele zece teste NN va lua următoarele valori: 2 3 5 6 7 8 10 10 10 102 \ 3 \ 5 \ 6 \ 7 \ 8 \ 10 \ 10 \ 10 \ 10
  • Pentru fiecare test se vor acorda: 33 puncte dacă primul număr este corect, 33 puncte dacă al doilea număr este corect şi 44 puncte daca al treilea număr este corect.
  • Un număr se consideră corect dacă diferă prin cel mult 0.00010.0001 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

Log in or sign up to be able to send submissions!