Олимпиадный тренинг

Задача . Message Relay


Задача

Темы:

N (1 <= N <= 1000) коров Фермера Джона последовательно пронумерованы от 1 до N. Коровы хотят переговариваться друг с другом с помощью жестяных банок и проводов.
Каждая корова может послать сообщение не более чем одной другой корове: для коровы i значение F(i) указывает Вам индекс коровы, которой корова i может послать любое сообщение, которое она получит (это число всегда отличается от i). Если F(i) равно 0, то эта корова не может переслать сообщение никому.
К несчастью, существует возможность что сообщение посланное некоторой коровой, будет ходить по кругу бесконечно. Корова называется "циклической", если сообщение, посланное этой коровой, попадает в бесконечный цикл. Коровы хотят избежать посылок сообщений от циклических коров. Пожалуйста, помогите им, подсчитв общее количество нециклических коров.
PROBLEM NAME: relay
Формат входных данных
* Строка 1: Количество коров, N.
* Строки 2..1+N: Строка i+1 содержит значение F(i).

Формат выходных данных
* Строка 1: Общее количество нециклических коров.
Примечание
Корова 1 нециклическая, поскольку она не пересылает сообщения. Корова 3 также нециклическая, поскольку она пересылает сообщения корове 1, которая не пересылает сообщений. Все остальные коровы циклические.


Примеры
Входные данныеВыходные данные
1 5
0
4
1
5
4
2

time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя