2433: 聚会

内存限制:256 MB 时间限制:3.000 S
评测方式:文本比较 命题人:
提交:76 解决:25

题目描述

一个公司有n个编号为1n的员工。每个员工或者没有直接主管要么恰有一个编号不同的直接主管。如果一个员工A满足以下至少一个条件,那么他被称为另一个员工B的上司:

1.员工A是员工B的直接主管

2.员工B的直接主管是员工C且员工A是员工C的上司。

这家公司没有管理上的环。即,不存在一个员工是他/她直接主管的上司。

今天这家公司将安排一场聚会。这需要将所有n个员工分成几组:每个员工必须恰属于一个组。而且,在任何一个单独的组中,必不存在两个员工AB满足AB的上司。

 

输入

第一行包含整数n1≤n≤2000)代表员工数。

接下来n行包含整数pi1≤pinpi=-1)。每一个pi表示第i个员工的直接主管。如果pi-1,则表示第i个员工没有一位直接主管。

数据保证没有员工是他自己的直接主管(pii)。同样,不存在管理上的环。

 

输出

包含一个单独的整数代表这个聚会中组成的最少组数。

样例输入 复制

5
-1
1
2
1
-1

样例输出 复制

3

提示

对于这个样例,分成三个组足矣,例如:

员工1、员工2和员工4、员工3和员工5