2433: 聚会
内存限制:256 MB
时间限制:3.000 S
评测方式:文本比较
命题人:
提交:76
解决:25
题目描述
一个公司有n个编号为1到n的员工。每个员工或者没有直接主管要么恰有一个编号不同的直接主管。如果一个员工A满足以下至少一个条件,那么他被称为另一个员工B的上司:
1.员工A是员工B的直接主管
2.员工B的直接主管是员工C且员工A是员工C的上司。
这家公司没有管理上的环。即,不存在一个员工是他/她直接主管的上司。
今天这家公司将安排一场聚会。这需要将所有n个员工分成几组:每个员工必须恰属于一个组。而且,在任何一个单独的组中,必不存在两个员工A和B满足A是B的上司。
输入
第一行包含整数n(1≤n≤2000)代表员工数。
接下来n行包含整数pi(1≤pi≤n或pi=-1)。每一个pi表示第i个员工的直接主管。如果pi是-1,则表示第i个员工没有一位直接主管。
数据保证没有员工是他自己的直接主管(pi≠i)。同样,不存在管理上的环。
输出
包含一个单独的整数代表这个聚会中组成的最少组数。
样例输入 复制
5
-1
1
2
1
-1
样例输出 复制
3
提示
对于这个样例,分成三个组足矣,例如:
员工1、员工2和员工4、员工3和员工5