在初创公司 Gaggle,我们摒弃了旧时代压抑的企业结构,不再有经理、下属和等级制度。相反,我们拥抱一种自由开放的企业文化,所有员工(称为 Gagglers)都对自己负责,并可以自由行动。
Picture by Antranias
与其让经理监督工作,Gaggle 协调工作的主要方法是导师制:每位 Gaggler 指定另一位 Gaggler 作为其导师,并与他们讨论正在进行的项目。这种导师关系可能是对称的,也可能不是(换句话说,你可能是你导师的导师,也可能不是),但你永远不能成为自己的导师。
最初,所有 Gagglers 都可以选择任何他们喜欢的人作为导师,但过了一段时间后,人们发现这导致了两个问题:
- 有些人比其他人更受欢迎,有太多人选择他们作为导师,导致他们没有时间做自己的实际工作。
- 一些 Gagglers 群体最终与公司其他部分隔绝(例如,如果 Gaggler A 和 B 互为导师,且他们不是其他任何人的导师,则这些群体无法与公司其他部分进行协调)。
为了纠正这两个缺陷,公司(集体)决定:
- 每位 Gaggler 必须恰好成为另一位 Gaggler 的导师,并且
- 假设每位 Gaggler 只与他们的导师和学员交流,任何 Gaggler 拥有的任何信息都必须能够传达给任何其他 Gaggler。
为了在引入这项新政策的同时奖励编号较小(资历较深)的 Gagglers,公司决定,编号较小的 Gagglers 应尽可能保留他们当前的导师;如果必须更换,他们的新导师编号应尽可能小(即资历更深,经验更丰富)。
具体来说,考虑两种可能的导师分配方案,假设这两种方案中编号最小的差异点是 Gaggler $i$。那么,如果其中一种方案将 Gaggler $i$ 分配给他们最初的导师,我们更倾向于该方案。否则,如果 Gaggler $i$ 在两种方案中都获得了新导师,我们则倾向于 Gaggler $i$ 的新导师编号较小的那个方案。
例如,考虑下方的样例 2。一种可能的导师分配方案是简单地将 Gaggler 1 的导师改为 Gaggler 2。然而,在最优分配方案中(如样例输出 2 所示),我们让 Gaggler 1 保留其当前导师,改为更改 Gaggler 2 和 3 的导师。
输入格式
输入的第一行包含一个整数 $n$ ($2 \le n \le 500\,000$),表示 Gagglers 的数量。 接下来一行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ ($1 \le a_i \le n$ 且 $a_i \neq i$ 对于每个 $i$),其中 $a_i$ 是 Gaggler $i$ 当前的导师(Gagglers 的编号从 $1$ 到 $n$)。
输出格式
输出一行新的导师分配方案 $b_1, \dots, b_n$,格式与输入相同。新的列表必须是符合新要求的有效分配,并且根据上述平局决胜规则是最优的。
样例
输入格式 1
4 2 1 4 3
输出格式 1
2 3 4 1
输入格式 2
3 3 3 1
输出格式 2
3 1 2