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

Задача . The Bovine Shuffle


Задача

Темы:
Зная, что счастливые коровы дают больше молока, Фермер Джон установил гигантский диско-шар в амбаре и планирует научить танцевать своих коров.

ФД выбрал танец "Bovine Shuffle", в котором \(N\) коров (\(1 \leq N \leq 100,000\)) выстроены в ряд в некотором порядке, затем они выполняют успешную перестановку, которая потенциально может переупорядочить коров. ФД пометил позиции коров \(1 \ldots N\), так, что первая корова в ряду стоит на позиции 1, вторая - на позиции 2, и т.д., до позиции \(N\).

Перестановка описывается \(N\) числами, \(a_1 \ldots a_N\), означающими, что корова с позиции i переместится в позицию \(a_i\) (все \(a_i\) в интервале $1 \ldots N) Каждая корова во время перестановки идёт на свою новую позицию. К несчастью, все \(a_i\)' не обязательно различные, поэтому несколько коров могут во время перестановки придти в одну и ту же позицию. После чего они будут ходить вместе все оставшиеся перестановки.

ФД заметил, что некоторые позиции содержат коров, сколько перестановок ни сделай. Помогите ему посчитать количество таких позиций.

ФОРМАТ ВВОДА (файл shuffle.in):

Первая строка ввода содержит \(N\), количество коров. Следующая строка содержит \(N\) целых чисел \(a_1 \ldots a_N\).

ФОРМАТ ВЫВОДА (файл shuffle.out):

Выведите количество позиций, в которых всегда остнутся коровы, вне зависимости от количества выполненных перестановок.


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

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

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