Nu aveti permisiuni pentru a descarca fisierul grader_test6.in
Diferente pentru problema/triunghiuri intre reviziile #6 si #21
Diferente intre titluri:
triunghiuri
Triunghiuri
Diferente intre continut:
== include(page="template/taskheader" task_id="triunghiuri") ==
Poveste şi cerinţă...
Un nou grup infracţional, Z, a aparut la tine in oras si incearca sa distruga Craciunul. Se ştie că harta oraşului este un plan cu diverse locaţii importante, reprezentate drept puncte in acest plan. Z actioneaza într-un mod foarte specific: intotdeauna atacă câte 3 puncte de interes, dar doar dacă aria triunghiului format de acestea este un număr întreg (inclusiv 0). Deoarece eşti cel mai iscusit programator, autorităţile ţi-au cerut ajutorul pentru a salva sărbătorile. Cunoscând cele $N$ locaţii iniţiale şi $Q$ modificări pe care le suferă harta, trebuie să realizezi un program care calculează în cate moduri ar putea infractorii să ţintească 3 puncte, atât pentru configuraţia iniţială, cât şi după fiecare modificare.
h2. Date de intrare
Fişierul de intrare $triunghiuri.in$ contine pe prima linie 2 numere: Nsi Q. Pe urmatoarele N linii se gasesc coordonatele celor N puncte initiale. Pe urmatoarele Q linii este descrisacate o operatie. Acestea pot fi de douatipuri: - $1 X Y$ - se insereazaun nou punct la coordonatele $(X, Y)$ - $2 X Y$ - sesterge un punct de la coordonatele $(X, Y)$
Fişierul de intrare $triunghiuri.in$ conţine pe prima linie 2 numere: $N$ şi $Q$. Pe următoarele $N$ linii se găsesc coordonatele celor $N$ puncte iniţiale. Pe următoarele $Q$ linii este descrisă câte o operaţie. Acestea pot fi de două tipuri: - $1 X Y$ - se inserează un nou punct la coordonatele $(X, Y)$. Se garanteaza că acest punct nu există deja. - $2 X Y$ - se şterge un punct de la coordonatele $(X, Y)$. Se garantează că acest punct există deja.
h2. Date de ieşire
În fişierul de ieşire $triunghiuri.out$ se vor afisa $Q+1$ linii, numarul de triunghiurispecialepentru configuratia initialaprecumsi dupafiecare actualizare.
În fişierul de ieşire $triunghiuri.out$ se vor afişa $Q+1$ linii, numărul de modalităţi de a alege 3 puncte respectând cerinţa, atât pentru configuraţia iniţială precum şi după fiecare actualizare.
h2. Restricţii
* $1 ≤ n ≤ 10000$ * $0 ≤ q ≤ 10000$
* $1 ≤ N ≤ 10000$ * $0 ≤ Q ≤ 10000$ * $-10^9^ ≤ x, y ≤ 10^9^$ * Toate coordonatele sunt numere intregi
* Pentru 50% din teste se garanteaza ca $n ≤ 100$ si $q = 0$.
* Un triunghi degenerat (de arie $0$) este considerat special.
* Un triunghi degenerat (de arie $0$) este considerat intreg. * O modificare anterioara se pastreaza si pentru modificarile ce o urmeaza.
h2. Exemplu table(example). |_. triunghiuri.in |_. triunghiuri.out |
| 10 0 7 -9 -8 6 7 -10 1 6 3 4 -2 3 7 -8 -6 8 7 3 3 9 | 70 |
| 5 0 5 8 9 2 9 9 9 -6 10 -5 | 7 |
| 5 5
-441 89-44 05 -229 -42-4 41-8-81-532-53 |1041464
5 -4 -2 3 -5 9 5 -8 4 1 2 4 1 1 8 9 2 5 -8 1 4 2 1 4 3 | 6 2 6 2 3 10
|
== include(page="template/taskfooter" task_id="triunghiuri") ==