Лес древних духов
Просмотр в формате PDFВ мистическом лесу расположены n полян, пронумерованных от 1 до n.
Для каждой поляны i известно число a_i — номер поляны, с которой она связана духовной нитью.
Будем считать, что если поляна i связана с поляной a_i, то эти две поляны принадлежат одному духовному кругу.
Связи рассматриваются как неориентированные: если есть связь между i и a_i, то по ней можно перейти в обе стороны.
Также поляны принадлежат одному духовному кругу, если между ними существует путь по таким связям.
Волшебники хотят соединить все духовные круги в один общий круг, добавляя новые связи между любыми двумя полянами.
Определите, какое минимальное количество новых связей нужно добавить, чтобы все поляны оказались в одном духовном круге.
Формат входных данных
В первой строке дано одно целое число n — количество полян.
Во второй строке даны n целых чисел a_1, a_2, ..., a_n, где a_i — номер поляны, с которой связана поляна i.
Формат выходных данных
Выведите одно целое число — минимальное количество новых связей, необходимых для объединения всех духовных кругов в один.
Пояснение
Если изначально в лесу k духовных кругов, то для объединения их в один достаточно добавить k - 1 связь.
Следовательно, нужно найти число компонент связности в неориентированном графе и вывести components - 1.
Ограничения
1 ≤ n ≤ ...1 ≤ a_i ≤ n
Пример 1
Ввод
6
2 3 1 5 4 6
Вывод
2
Пример 2
Ввод
10
1 2 3 4 5 6 7 8 9 10
Вывод
9
Комментарии
тут даже готовое решение не подходит(
Поправил эталонку в разборе