树的结点值


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 80M

Author:
Problem type
Allowed languages
C, C++

树的结点值

题目描述

给定一棵包含 \(n\) 个结点的树,树根编号为 \(1\)。定义第 \(i\) 个结点的为:其子树中所有与 \(i\) 编号奇偶性相同的结点数量。请按编号从小到大输出每个结点的值。

注:编号奇偶性指结点编号是奇数还是偶数;例如 \(1,3,5\) 为奇,\(2,4,6\) 为偶。

输入格式

  • 第一行包含一个整数 \(n\)。
  • 接下来 \(n-1\) 行,第 \(i\) 行给出整数 \(F_{i+1}\),表示结点 \((i+1)\) 的父结点编号。

输出格式

  • 输出 \(n\) 行。第 \(i\) 行输出编号为 \(i\) 的结点的值。

样例 #1

输入

5
1
2
1
2

输出

3
1
1
1
1

说明/提示

  • 对于 \(40%\) 的评测用例,\(1 \le n \le 5000\);
  • 对于所有评测用例,\(1 \le n \le 2 \times 10^5\),\(1 \le F_i < i\)。

Comments

There are no comments at the moment.