Il y a un arbre (graphe connexe sans cycle non orienté) constitué de $N$ sommets. Les sommets sont numérotés de $1$ à $N$, et la couleur de chaque sommet est noire ou blanche.
Écrivez un programme qui traite les requêtes suivantes :
- $X$ : Change la couleur du sommet $X$. (blanc $\to$ noir, noir $\to$ blanc) Ensuite, affiche la somme des niveaux du LCA (plus petit ancêtre commun) pour toutes les paires $(a,b)$ de sommets blancs distincts.
La racine est le sommet $1$. Le niveau de la racine est $0$, et le niveau des autres sommets est défini comme (niveau du parent) $+1$.
Entrée
La première ligne contient le nombre de sommets $N$ et le nombre de requêtes $Q$.
La deuxième ligne contient les entiers $t_1, t_2, \dots, t_N$ représentant la couleur des sommets $1, 2, \dots, N$. Pour $i$ ($1 \le i \le N$), $t_i = 0$ signifie noir et $t_i = 1$ signifie blanc.
La troisième ligne contient les entiers naturels $P_2, P_3, \dots, P_N$, où $P_i$ est le parent du sommet $i$ (pour $i$ de $2$ à $N$).
Les $Q$ lignes suivantes contiennent chacune un entier $X$ représentant une requête.
Sortie
La première ligne doit contenir la réponse pour l'état initial.
Les $Q$ lignes suivantes doivent contenir les réponses pour chaque requête dans l'ordre.
Exemples
Entrée 1
5 5 1 0 0 1 1 1 1 3 2 5 3 5 4 2
Sortie 1
0 0 1 1 0 1
Entrée 2
10 10 1 0 0 1 1 0 1 0 1 0 1 2 1 4 5 6 1 4 1 8 4 4 4 10 9 2 1 5 3
Sortie 2
7 7 4 7 4 4 2 2 2 0 1
Entrée 3
20 20 1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 2 3 4 2 2 1 3 2 4 4 3 3 3 8 14 11 7 7 5 12 19 5 10 18 17 13 10 5 5 13 10 4 11 8 14 13 19 15
Sortie 3
26 16 26 21 33 39 26 38 51 44 31 44 32 38 53 71 71 55 70 79 97