Adă caii

Time limit: 1.15s Memory limit: 256MB Input: Output:

CJ și-a lăsat herghelia de cai liberă pe pajiștea de la Șumuștău și acum îl strigă pe JS să aducă caii înapoi. Pajiștea de la Șumuștău poate fi reprezentată sub forma unui arbore cu NN noduri indexate de la 11 la NN. Se știe că în nodul ii se află CiC_i cai. Pe parcursul a QQ evenimente de timp, CJ și JS se plimbă pe pajiște ca să adune caii. Un eveniment poate fi unul din cele două tipuri de mai jos:

  • CJ x: CJ vine în nodul xx. Prin urmare, toți caii se mută, din nodul în care se află în nodul vecin cel mai apropiat de x. (Caii din nodul xx stau pe loc.)
  • JS x y: JS spune că în nodul xx sunt yy cai și voi trebuie să stabiliți dacă minte sau nu.

Cerință

Se dau NN, QQ, numărul inițial de cai din fiecare nod, muchiile arborelui și cele QQ evenimente și se cere să se stabilească dacă JS spune adevărul pentru fiecare eveniment de tip JS ținând cont de modificările făcute de evenimentele CJ până în acel moment.

Date de intrare

Pe prima linie a intrării se află două numere naturale NN și QQ separate printr-un spațiu. Pe a doua linie se află NN numere naturale separate prin spații, cel de al ii-lea număr reprezentând numărul inițial de cai din nodul ii.

Pe următoarele N1N-1 linii se află câte două numere naturale aa și bb cu semnificația că există muchie de la nodul aa la nodul bb.

Pe fiecare dintre următoarele QQ linii se va afla câte un eveniment din un din cele două tipuri

  • Pentru evenimente de primul tip se dă un șir de forma CJ și separat printr-un spațiu un număr natural xx reprezentând nodul în care se duce CJ.
  • Pentru evenimente de al doilea tip se dă un șir de forma JS și separate prin spații două numere naturale xx și yy reprezentând nodul în care vrem să numărăm câți cai există respectiv câți cai susține JS că sunt acolo.

Date de ieșire

Ieșirea trebuie să conțină un număr de rânduri egal cu numărul de evenimente de tip JS din intrare. Pe fiecare rând se va afișa 11 dacă se stabilește că JS spune adevărul sau 00 dacă se stabilește că JS minte.

Restricții și precizări

  • 1N,Q100 0001 \leq N, Q \leq 100 \ 000
  • 0Ci1 000 000 0000 \leq C_i \leq 1 \ 000 \ 000 \ 000
  • 1i=1NCi1 000 000 0001 \leq \sum_{i=1}^N C_i \leq 1 \ 000 \ 000 \ 000
  • 0y1 000 000 0000 \leq y \leq 1 \ 000 \ 000 \ 000 pentru toate evenimentele de tip JS
  • 1xN1 \leq x \leq N pentru toate evenimentele
# Scor Restricții
1 6 66 puncte frumoase pentru 66 cai frumoși (i=1NCi=6\sum_{i=1}^N C_i = 6)
2 7 1N,Q10001 \leq N,Q \leq 1000
3 8 1K301 \leq K \leq 30, unde KK este numărul de noduri inițiale pentru care Ci>0C_i > 0
4 9 1Ci1 \leq C_i și JS declară mereu zero cai
5 15 Arborele este un lanț. (123N1 - 2 - 3 \cdots - N)
6 17 Toate evenimentele tip CJ au loc doar în nodul 11
7 38 Fără restricții adiționale

Exemple

stdin

6 4
1 1 1 2 2 2
1 2
2 3
2 4
4 5
3 6
CJ 6
CJ 6
JS 6 4
JS 6 3

stdout

1
0

Explicații:
După primul eveniment caii ajung să se mute astfel:
0 3 1 2 0 3
După al doilea eveniment caii ajung să se mute astfel:
0 2 3 0 0 4
La al treilea eveniment până în acest moment în nodul 6 regăsim 4 cai deci JS a spus adevărul.
La al patrulea eveniment până în acest moment în nodul 6 regăsim 4 cai deci JS minte că ar fi 3.

Log in or sign up to be able to send submissions!