Задача №114044. Экспедиция

Планируется отправить экспедицию к соседней звёздной системе. Были отобраны \(n\) кандидатов, пронумерованных от \(1\) до \(n\), среди которых необходимо выбрать участников экспедиции. Организаторы хотят отправить в экспедицию как можно больше кандидатов.

Среди кандидатов был проведён опрос, в процессе которого каждый мог указать не более, чем одного из остальных кандидатов, с которым он не готов отправиться в экспедицию. Результатом опроса для \(i\)-го кандидата является целое число \(a_i\), которое равно номеру кандидата, с которым \(i\)-й кандидат не готов отправиться в экспедицию, либо \(-1\), если \(i\)-й кандидат готов отправиться в экспедицию в любом составе.

Теперь организаторы должны выбрать, кто из кандидатов отправится в экспедицию. Решено было выбрать участников экспедиции так, что если туда входит некоторый кандидат \(i\), и \(a_i \ne -1\), то туда не входит кандидат \(a_i\). Организаторы хотят выбрать максимальное количество участников экспедиции.

Требуется написать программу, которая по заданным результатам опроса кандидатов определяет максимальное количество кандидатов, которых можно отправить в экспедицию.

Входные данные

В первой строке входных данных находится целое число \(n\) — количество кандидатов (\(1 \le n \le 300\,000\)).

В следующих \(n\) строках даны результаты опроса, \(i\)-я из этих строк содержит результат опроса \(i\)-го кандидата, целое число \(a_i\) (\(a_i = -1\) или \(1 \le a_i \le n\), \(a_i \neq i\)).

Выходные данные

В единственной строке выведите одно целое число — максимальное количество кандидатов, которых можно отправить в экспедицию.

Система оценки

Баллы за каждую подзадачу начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.

Примеры
Входные данные
4
2
4
2
1
Выходные данные
2
Входные данные
3
2
-1
2
Выходные данные
2
Сдать: для сдачи задач необходимо войти в систему