În dimineața barajului $1$ de la lotul din Slatina, după ce s-au trezit la timp, campionii vor, bineînțeles, să servească micul dejun al campionilor. După cum știm cu toții, micul dejun al campionilor se ia numai la Profi.
Orașul Slatina poate fi privit ca un arbore cu $N$ noduri, fiecare nod fiind un punct de interes al orașului și unde punctele de interes sunt conectate între ele prin străzi bidirecționale de lungimi egale. Cum orașul Slatina este în continuă dezvoltare, în fiecare din următoarele $Q$ zile se va desfășura una din următoarele evenimente:
Deoarece campionii sunt indeciși cu privire la locația în care vor să servească micul dejun, ei vor să se întâlnească într-un punct de interes care este la distanță egală de toate magazinele Profi din oraș. Inițial, nu există niciun magazin Profi construit în oraș.
Ajutați campionii să-și ia micul dejun! După fiecare dintre cele $Q$ zile calculați numărul de locații în care se pot întâlni campionii pentru a fi la distanță egală de toate magazinele Profi.
Prima linie conține numerele $N$ și $Q$. Pe următoare linie se află $N$ numere, al $i$-lea reprezentând tatăl nodului $i$. Următoarele $Q$ linii conțin fiecare câte un număr întreg, $u_i$. Dacă $u_i > 0$, atunci se va construi un magazin Profi în punctul de interes $u_i$. Dacă $u_i < 0$, atunci se va demola magazinul Profi din punctul de interes $-u_i$.
Se vor afișa $Q$ linii. Pe a $i$-a linie se va afișa numărul de puncte de interes în care campionii se pot întâlni după ziua $i$, astfel încât să fie la distanță egală de toate magazinele Profi.
Intrare
7 3 6 7 2 6 3 0 4 5 4 -5
Ieșire
7 1 7
Intrare
7 12 0 1 2 1 4 1 6 2 4 6 -4 5 -2 -6 3 7 -3 -5 1
Ieșire
7 3 1 3 0 0 7 3 1 3 7 1
| Autor: | Bogdan Petru Pop |
| Publicat de: | vlad |
Tags:
Arbori de intervale Arbori indexați binar Binary Lifting Liniarizarea arborelui