Fişierul intrare/ieşire: | votare.in, votare.out | Sursă | .campion 2009 runda a-11-a grupa Large |
Autor | Mircea Dima | Adăugată de | |
Timp execuţie pe test | 0.125 sec | Limită de memorie | 20480 kbytes |
Scorul tău | N/A | Dificultate | N/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:
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 |
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.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 |