时间限制:1000 ms
内存限制:128 MiB
标准输入输出
题目类型:传统
评测方式:文本比较
一家公司有 名员工,编号从 到 。每个员工要么没有直接上级,要么恰好有一个直接上级,而这个上级是另一名不同编号的员工。如果满足以下条件之一,则称员工 A 是另一名员工 B 的上级:
员工 A 是员工 B 的直接上级
员工 B 有一名直接上级员工 C,而员工 A 是员工 C 的上级
公司不会存在管理循环。也就是说,不会有员工是其/他自己的直接上级。
今天公司要举办一个派对。这涉及将所有的 名员工分成几个小组:每个员工必须属于且仅属于一个小组。此外,在任何一个小组内,不会有两名员工 A 和 B,其中 A 是 B 的上级。
最少需要形成多少个小组?
第一行包含一个整数 () —— 员工的数量。
接下来的 行包含整数 ( 或 )。每个 表示第 名员工的直接上级。如果 是 ,那意味着第 名员工没有直接上级。
保证,没有员工的直接上级是他/她自己 ( ≠ )。同时,不会出现管理循环。
样例输入
样例输出
样例解释
提示
对于第一个示例,三个小组就足够了,例如:
员工 1
员工 2 和 4
员工 3 和 5