Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2009-04-01 22:36:08.
Revizia anterioară   Revizia următoare  

 

Fişierul intrare/ieşire:votare.in, votare.outSursă.campion 2009 runda a-11-a grupa Large
AutorMircea DimaAdăugată deblasterzMircea Dima blasterz
Timp execuţie pe test0.125 secLimită de memorie20480 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Votare

Pe planeta Marte astazi se voteaza. Martienii sunt imprastiati pe suprafata planetei, pozitiile lor fiind specificate prin coordonatele carteziene ale punctului de pe harta in care se afla. Cand si cand se petrec tot felul de evenimente: dispare un martian (pleaca la vot), apare un martian (se intoarce de la vot) sau un martian se intreaba la ce distanta se afla cel mai apropiat martian (pentru a-l intreba daca a votat sau nu).

Cerinta

Cunoscand secventa evenimentelor, sa se afle raspunsurile la intrebarile martienilor.

Date de intrare

Fisierul de intrare votare.in contine pe prima linie numarul natural N, reprezentand numarul de eveniment. Urmatoarele N linii contin evenimentele, cate un eveniment pe cate o linie, in ordinea in care acestea se produc. Un eveniment este descris prin 3 numere intregi separate prin spatii astfel:

EvenimentSemnificatie
0 x yapare un martian in pozitia de coordonate (x,y)
1 x ydispare martianul din pozitia de coordonate (x,y)
2 x ymartianul din pozitia de coordonate (x,y) intreaba care este distanta fata de cel mai apropiat martian

Date de iesire

Fisierul de iesire votare.out va contine in ordine raspunsurile la intrebarile martienilor (evenimente de forma 2 x y), cate un raspuns pe o linie.

Restrictii

  • 1 ≤ N ≤ 100.000
  • Toate coordonatele din fisierul de intrare sunt numere intregi nenule in intervalul [-32.000, +32.000]
  • Doi martieni nu se pot afla simultan in aceeasi pozitie
  • Distanta dintre 2 puncte (x0,y0) si (x1,y1) se defineste ca fiind (x0-x1)*(x0-x1)+(y0-y1)*(y0-y1)
  • Daca nu exista niciun martian se va afisa raspunsul -1
  • Punctele date la query-uri nu sunt inserate in set-ul de puncte
  • Un punct dat la un query se poate afla in set-ul de puncte iar in aces caz distanta minima va fi 0
  • Se poate cere inserarea unui punct deja existent sau stergerea unui punct inexistent, in acest caz nu se intampla nimic

Exemplu

votare.invotare.out
9
0 5 6
0 7 9
0 12 9
2 1 1
0 5 3
0 1 4
2 2 4
1 5 6
2 1 1
41
1
9
Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?