QOJ.ac

QOJ

حد الوقت: 3.0 s حد الذاكرة: 512 MB مجموع النقاط: 100 قابلة للهجوم ✓

#12719. 隐藏的监督者

الإحصائيات

Helena 在一家大公司担任心理学家。她的任务是组织一场团队建设游戏,以增强员工之间的社交关系。除了大老板(Big boss)外,每位员工都有一位直属上司。因此,公司的员工构成了一棵树,每位员工是一个节点,其父节点即为他们的上司。树的根节点是大老板。

团队建设游戏需要两人一组。每个团队必须由一名员工及其直属上司组成。

Helena 要求除大老板外的每位员工提交其上司的 ID。其中一些员工没有回复。她打算为每位没有回复的员工指派一名虚构的上司,以便尽可能多地组成团队。当然,虚构的上司和真实的上司必须共同构成一棵树。

Helena 度过了艰难但成功的一天,组织了这场活动。你能帮她指派虚构的上司吗?

输入格式

第一行包含一个整数 $n$ —— 公司员工的人数 ($2 \le n \le 100\,000$)。

接下来一行包含 $n-1$ 个整数 $p_2, p_3, \dots, p_n$,其中 $p_i$ 是员工 $i$ 的上司 ($0 \le p_i \le n$)。如果员工 $i$ 没有回复 Helena,则 $p_i$ 为 $0$,她需要为该员工指派一名虚构的上司。大老板的编号为 $1$。

题目保证可以为每位没有回复的员工指派一名虚构上司,使得所有员工构成一棵以大老板为根的树。

输出格式

第一行输出一个整数 $m$ —— 最多能组成的团队数量。

下一行输出上司信息:包含 $n-1$ 个整数,其中第 $i$ 个整数表示员工 $i+1$ 的上司(虚构或真实)。当然,所有真实的上司必须保留,且员工必须构成一棵树。使用指定的上司配置应当能够组成 $m$ 个团队。

样例

样例输入 1

6
3 1 0 4 4

样例输出 1

2
3 1 2 4 4

样例输入 2

6
3 1 0 6 4

样例输出 2

3
3 1 1 6 4

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.