Codeforces Beta Round 87 (Div. 1 Only) |
---|
Закончено |
В компании работает n сотрудников, пронумерованных от 1 до n. У каждого сотрудника либо нет руководителя, либо есть ровно один непосредственный руководитель — некоторый другой сотрудник с другим номером. Сотрудник A называется начальником другого сотрудника B, если выполняется хотя бы одно из двух условий:
В структуре компании нет циклов. То есть никакой сотрудник не является начальником своего непосредственного руководителя.
Сегодня компания собирается организовать праздник. Для этого необходимо разделить всех 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
В первом примере достаточно трех групп:
Название |
---|