题库练习 MEX Tree Manipulation
← 上一题 下一题 →

A15400 | MEX Tree Manipulation

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

Given a rooted tree, define the value of vertex $u$ in the tree recursively as the MEX $^\dagger$ of the values of its children. Note that it is only the children, not all of its descendants. In particular, the value of a leaf is $0$ .

Pak Chanek has a rooted tree that initially only contains a single vertex with index $1$ , which is the root. Pak Chanek is going to do $q$ queries. In the $i$ -th query, Pak Chanek is given an integer $x_i$ . Pak Chanek needs to add a new vertex with index $i+1$ as the child of vertex $x_i$ . After adding the new vertex, Pak Chanek needs to recalculate the values of all vertices and report the sum of the values of all vertices in the current tree.

$^\dagger$ The MEX (minimum excluded) of an array is the smallest non-negative integer that does not belong to the array. For example, the MEX of $[0,1,1,2,6,7]$ is $3$ and the MEX of $[6,9]$ is $0$ .

输入格式

The first line contains a single integer $q$ ( $1 \le q \le 3 \cdot 10^5$ ) — the number of operations.

Each of the next $q$ lines contains a single integer $x_i$ ( $1 \leq x_i \leq i$ ) — the description of the $i$ -th query.

输出格式

For each query, print a line containing an integer representing the sum of the new values of all vertices in the tree after adding the vertex.

输入输出样例

输入 #1
7
1
1
3
2
5
2
1
输出 #1
1
1
3
2
4
4
7
输入 #2
8
1
1
1
1
5
6
7
8
输出 #2
1
1
1
1
3
2
4
3
C++ 编辑器
输入
输出