Fiesta de la compania


Submit solution

Points: 100 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
Ada, BrainF***, C, C#, C++, Dart, Go, Java, JS, Kotlin, Lua, Pascal, Prolog, Python, Swift, VB

Una compañía tiene n empleados enumerados del 1 al n. Cada empleado o no tiene jefe inmediato o tiene exactamente uno, el cual es otro empleado. Un empleado A es el superior de otro empleado B si al menos una de las siguientes condiciones es verdadera:

• el empleado A es el jefe inmediato de B.

• el empleado B tiene un jefe inmediato C tal que el empleado A es superior del empleado C.

Se garantiza que en la compañía no habrán ciclos de mando. Es decir, no habrá un empleado el cual sea el superior de su jefe inmediato.

Hoy la compañía va a organizar una fiesta. Esto implica dividir los n empleados en varios grupos: cada empleado debe pertenecer a exactamente un grupo. Más aún, en cualquier grupo no pueden haber dos empleados A y B tal que A sea superior de B.

¿Cuál es la menor cantidad de grupos que deben ser formados?

Entrada

La primera línea de la entrada contiene el entero n \; (1 \le n \le 2000). Las siguientes n lıneas contienen los enteros p_i \; (1 \le p_i \le n o p_i = -1). Cada p_i denota el jefe inmediato del i-ésimo empleado. Si p_i es -1 entonces el i-ésimo empleado no tiene un jefe inmediato. Se garantiza que no habrán ciclos de mando y que ningún empleado será el jefe inmediato de él mismo \((p_i ≠ i)\).

Salida

Imprima en una única línea la respuesta del problema.

Ejemplo de Entrada

5                                               
-1
1 
2 
1
-1

Ejemplo de Salida

3

Explicación del ejemplo

Una posible solución sería formar los siguientes grupos:

  1. Empleado 1
  2. Empleado 2 y 4
  3. Empleado 3 y 5

Nota que usando menos grupos no es posible hacerlo.


Comments

There are no comments at the moment.