Festa
Uma empresa possui funcionários numerados de
a
. Cada funcionário não tem gerente imediato ou tem exatamente um gerente imediato, que é outro funcionário com um número diferente. Diz-se que um funcionário
é superior a outro funcionário
se pelo menos uma das seguintes situações for verdadeira:
- O funcionário
é o gerente imediato do funcionário
.
- O funcionário
tem um gerente imediato, funcionário
, de modo que o funcionário
seja superior ao funcionário
.
A empresa não terá um ciclo gerencial. Ou seja, não haverá funcionário que seja superior ao seu gerente imediato.
Hoje a empresa vai organizar uma festa. Isso envolve dividir todos os funcionários em vários grupos: todo funcionário deve pertencer a exatamente um grupo. Além disso, dentro de um único grupo, não deve haver dois funcionários
e
, de modo que
seja o superior de
.
Qual é o número mínimo de grupos que devem ser formados?
Entrada
A primeira linha contém o número inteiro (
) - o número de funcionários.
As próximas linhas contêm os números inteiros
(
ou
). Cada
indica o gerente imediato do
-ésimo funcionário. Se
for -1, isso significa que o
-ésimo funcionário não tem um gerente imediato.
É garantido que nenhum funcionário será o gerente imediato de si mesmo (). Além disso, não haverá ciclos gerenciais.
Saída
Imprima um único número inteiro indicando o número mínimo de grupos que serão formados na festa.
Exemplos
ENTRADA | SAÍDA |
5 -1 1 2 1 -1 |
3 |
Enviar solução: codeforces