== include(page="template/taskheader" task_id="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).
Poveste şi cerinţă...
h2. Cerinta
h2. Date de intrare
Cunoscand secventa evenimentelor, sa se afle raspunsurile la intrebarile martienilor.
Fişierul de intrare $votare.in$ ...
h2. Date de ieşire
h2. Date de intrare
În fişierul de ieşire $votare.out$ ...
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:
h2. Restricţii
|Eveniment | Semnificatie |
| 0 x y | apare un martian in pozitia de coordonate (x,y) |
| 1 x y | dispare martianul din pozitia de coordonate (x,y) |
| 2 x y | martianul din pozitia de coordonate (x,y) intreaba care este distanta fata de cel mai apropiat martian |
h2. 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.
h2. 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
* $... ≤ ... ≤ ...$
h2. Exemplu
table(example). |_. votare.in |_. votare.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
| This is some
text written on
multiple lines.
| This is another
text written on
multiple lines.
|
== include(page="template/taskfooter" task_id="votare" ) ==
h3. Explicaţie
...
== include(page="template/taskfooter" task_id="votare") ==