Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024

2020-2022 2023 Regulations Schedule RODO info Ranking

Problem description


Ustawianie w pary
(pary)
Memory limit: 64 MB
Time limit: 1.00 s

Jasio i jego znajomi z klasy są przykładnymi uczniami, dlatego przed każdą lekcją ustawiają się w pary (w przypadku nieparzystej liczby osób jedna osoba zostaje bez pary).

Każdy uczeń ma swojego najlepszego przyjaciela, z którym chciałby chociaż raz być w parze. Oczywiście nikt nie jest najlepszym przyjacielem samego siebie, a ponadto każdy jest najlepszym przyjacielem dokładnie jednej osoby.

Pomóż Jasiowi wyznaczyć ile lekcji musi się odbyć, aby każdy mógł być ustawiony w parę ze swoim najlepszym przyjacielem chociaż raz.

Uwaga! Relacja przyjaźni niekoniecznie jest symetryczna, to znaczy jeśli Zbyszek jest najlepszym przyjacielem Jasia, to wcale nie oznacza, że Jasio jest najlepszym przyjacielem Zbyszka (ale może nim być).

Wejście

W pierwszym wierszu wejścia znajduje się jedna liczba naturalna N, będąca liczbą osób w klasie Jasia. W drugim wierszu znajduje się N liczb naturalnych A1, A2, …, AN, gdzie i-ta z nich oznacza indeks najlepszego przyjaciela i-tej osoby.

Wyjście

W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć minimalna liczba lekcji, które muszą się odbyć, aby każdy był w parze ze swoim najlepszym przyjacielem chociaż raz.

Ograniczenia

2 ≤ N ≤ 100 000.

Ciąg A jest permutacją, taką że Ai ≠ i.

Przykład

Input Output Explanation
4
2 1 4 3
1

Wystarczy jedna lekcja, przed którą osoba numer 1 ustawi się w parę z osobą numer 2, a osoba numer 3 ustawi się w parę z osobą numer 4.

Input Output Explanation
3
2 3 1
3

Przed każdą lekcją w parę mogą ustawić się tylko dwie osoby, zatem potrzebne są trzy lekcje.