Technocup 2020 - Elimination Round 2
F
Tree Factory
Codeforces
2500
原题
← EG →
翻译中…

Bytelandian Tree Factory produces trees for all kinds of industrial applications. You have been tasked with optimizing the production of a certain type of tree for an especially large and important order.

翻译中…

The tree in question is a rooted tree with $n$ vertices labelled with distinct integers from $0$ to $n - 1$. The vertex labelled $0$ is the root of the tree, and for any non-root vertex $v$ the label of its parent $p(v)$ is less than the label of $v$.

翻译中…

All trees at the factory are made from bamboo blanks. A bamboo is a rooted tree such that each vertex has exactly one child, except for a single leaf vertex with no children. The vertices of a bamboo blank can be labelled arbitrarily before its processing is started.

翻译中…

To process a bamboo into another tree a single type of operation can be made: choose an arbitrary non-root vertex $v$ such that its parent $p(v)$ is not a root either. The operation consists of changing the parent of $v$ to its parent's parent $p(p(v))$. Note that parents of all other vertices remain unchanged, in particular, the subtree of $v$ does not change.

翻译中…

Efficiency is crucial, hence you have to minimize the number of operations to make the desired tree from a bamboo blank. Construct any optimal sequence of operations to produce the desired tree.

翻译中…

Note that the labelling of the resulting tree has to coincide with the labelling of the desired tree. Formally, the labels of the roots have to be equal, and for non-root vertices with the same label the labels of their parents should be the same.

翻译中…

It is guaranteed that for any test present in this problem an answer exists, and further, an optimal sequence contains at most $10^6$ operations. Note that any hack that does not meet these conditions will be invalid.

翻译中…

Input

翻译中…

The first line contains a single integer $n$ — the number of vertices in the tree ($2 \leq n \leq 10^5$).

翻译中…

The second line contains $n - 1$ integers $p(1), \ldots, p(n - 1)$ — indices of parent vertices of $1, \ldots, n - 1$ respectively ($0 \leq p(i) \lt i$).

翻译中…

Output

翻译中…

In the first line, print $n$ distinct integers $id_1, \ldots, id_n$ — the initial labelling of the bamboo blank starting from the root vertex ($0 \leq id_i \lt n$).

翻译中…

In the second line, print a single integer $k$ — the number of operations in your sequence ($0 \leq k \leq 10^6$).

翻译中…

In the third line print $k$ integers $v_1, \ldots, v_k$ describing operations in order. The $i$-th operation consists of changing $p(v_i)$ to $p(p(v_i))$. Each operation should be valid, i.e. neither $v_i$ nor $p(v_i)$ can be the root of the tree at the moment.

翻译中…

样例

Input #1
5
0 0 1 1
Output #1
0 2 1 4 3
2
1 3
InputCopy OutputCopy
Input #2
4
0 1 2
Output #2
0 1 2 3
0
InputCopy OutputCopy
题目信息
题号
1225F
时间限制
2 s
内存限制
512 MB
标签
构造
贪心
树

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。