Fişierul intrare/ieşire:jb.in, jb.outSursăLot Sibiu 2011
AutorMarius DumitranAdăugată deeudanipEugenie Daniel Posdarascu eudanip
Timp execuţie pe test0.95 secLimită de memorie65536 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

JB

James Bond (JB) are o nouă misiune: trebuie să distrugă N 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.

Determinaţi cele trei distanţe minime.

Date de intrare

Pe prima linie a fişierului jb.in se află N - numărul de planete. Pe următoarele 2*N linii sunt descrise cele N planete, câte două linii pentru fiecare planetă. Pe prima linie se găsesc patru numere: Xi Yi Ri Bi, reprezentând coordonatele centrului, raza, şi numărul de baze secrete de pe planeta i.
Pe a doua linie se găsesc Bi perechi de numere reale, reprezentând coordonatele bazelor de pe planeta i.

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

  • 1 ≤ N ≤ 10
  • 1 ≤ Bi ≤ 50
  • -1 000 000 ≤ Xi, Yi ≤ 1 000 000
  • 0 ≤ Ri ≤ 100 000
  • Dacă nu există nicio soluţie pentru un anumit vehicul, afişaţi -1.
  • Numerele se vor afişa cu 6 zecimale.
  • În cele zece teste N va lua următoarele valori: 2 3 5 6 7 8 10 10 10 10
  • Pentru fiecare test se vor acorda: 3 puncte dacă primul număr este corect, 3 puncte dacă al doilea număr este corect şi 4 puncte daca al treilea număr este corect.
  • Un număr se consideră corect dacă diferă prin cel mult 0.0001 de valoarea corectă.

Exemplu

jb.injb.out
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
121.231056 161.415927 161.415927
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?

remote content