Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024
Problem description
Jasio poznał ostatnio piękną dziewczynę. Chciałby jej zaimponować. Postanowił jednak, że nie zacznie od pochwalenia się firmą taty, tylko zamiast tego zabierze ją na długi spacer po lesie. Las składa się z N polan połączonych drogami. Ministerstwo Środowiska z bliżej nieokreślonych przyczyn postanowiło, że z każdej polany będzie tylko jedno wyjście do jakiejś (innej lub tej samej) polany oraz wyjście z lasu.
Jasio wie, że dziewczyna nie zadowoli się byle czym – jeśli odwiedzi tę samą polanę dwukrotnie to uzna Jasia za nudziarza i jego szanse u niej spadną z zera do mniej niż zera. Chciałby podelektować się tą rzadką okazją spaceru z dziewczyną jak najdłużej. Pomóż mu!
Napisz program, który: wczyta opis lasu, wyznaczy długość najdłuższej podróży Jasia i wypisze wynik na standardowe wyjście.
Wejście
W pierwszym wierszu wejścia znajduje się jedna liczba naturalna N, określająca liczbę polan w lesie. W drugim (ostatnim) wierszu wejścia znajduje się ciąg N liczb naturalnych Ai, pooddzielanych pojedynczymi odstępami. i-ta liczba określa numer polany, do której prowadzi jedyne wyjście w głąb lasu z polany numer i.
Polany numerowane są kolejnymi liczbami naturalnymi od 1 do N włącznie.
Wyjście
Twój program powinien wypisać na wyjście jedną liczbę naturalną – maksymalną liczbę polan, które Jasio może przejść na swoim spacerze zanim zmuszony będzie wyjść z lasu, aby nie wyjść na nudziarza.
Ograniczenia
1 ≤ N ≤ 500 000, 1 ≤ Ai ≤ N.
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Jasio może rozpocząć podróż na czwartej polanie, przejść potem do pierwszej, następnie do drugiej, a potem do trzeciej. Potem musi już wyjść z lasu. Łącznie w tym wariancie odwiedzi cztery polany. |