C1697 [Wannafly冬令营2018Day8]Aqours

内存限制:512 MB 时间限制:1500 ms

题目描述

Aqours 正在 LoveLive! 决赛中表演,舞台可以看作是一棵 $n$ 个点的有根树,其中根节点是 1 号点,$i$ 号点的父亲节点为 $p_i$,保证 $1 \le p_i < i$,而且对于 $2 \le i < j \le n$ 有 $p_i \le p_j$。

其中的叶子节点(定义为没有孩子节点的点)是与粉丝进行互动的节点,Aqours 会在这些叶子节点之间走动来与更多的粉丝互动,但是她们又要唱歌又要跳舞,要尽快节省走动时间,然后也要做到雨露均沾,所以每次要往编号更小的叶子节点走。

所以 Aqours 想知道对于每一个叶子节点 $u$,离它最近的编号 $< u$ 的叶子节点到它的距离是多少,若不存在则视距离为 -1。

输入格式

第一行一个正整数 $n (1 \le n \le 3 \times 10^6)$,表示树的大小。

第二行 $n-1$ 个正整数,其中第 $i$ 个数表示 $p_{i+1}(1 \le p_{i+1} \le i)$。

对于 $2 \le i < j \le n$,保证 $p_i \le p_j$。

输出

每个叶子对应的答案输出一行。每行第一个数是叶子节点的编号 $u$,第二个数是离他最近的编号 $< u$ 的叶子节点到它的距离,若不存在则输出 -1。

要求按叶子节点编号从小到大输出。

样例

样例输入 1

10 1 1 1 1 2 4 5 6 7

样例输出 1

3 -1 8 3 9 4 10 4

提示