Mafia
Limit pamięci: 128 MB
Ostatnio Bajtocją Równikową wstrząsają mafijne porachunki.
Do Bajtogrodu, stolicy tego kraju, zjechali się przywódcy mafijni, aby zakończyć spory.
W pewnym momencie rozmowy stały się bardzo nerwowe i uczestnicy spotkania wyciągnęli broń.
Każdy z nich trzyma w ręku pistolet i celuje w jednego innego uczestnika.
Jeśli dojdzie do strzelaniny, to z godnie z kodeksem honorowym:
-
uczestnicy będą strzelać w pewnej kolejności, przy czym jednocześnie
może strzelać tylko jeden z nich,
-
żaden z nich nie pudłuje, a ofiara natychmiast umiera i nie może strzelać,
-
każdy z nich strzeli dokładnie jeden raz, o ile wcześniej sam
nie zostanie zastrzelony,
-
żaden uczestnik nie może zmienić wybranego na początku celu, nawet
jeżeli osoba do której celuje zostanie zastrzelona
(w takim wypadku strzał nie zmienia liczby ofiar).
Przypadkowo, sytuację obserwuje przedsiębiorca pogrzebowy,
zaprzyjaźniony ze wszystkimi obecnymi.
Chce on oszacować możliwą liczbę ofiar, minimalną i maksymalną.
Przedsiębiorca pogrzebowy wie kto w kogo celuje, ale nie zna kolejności
strzelania.
Twoim zadaniem jest napisanie programu, który te liczby wyliczy.
Zadanie
Napisz program, który:
-
wczyta ze standardowego wejścia opis celów, jakie obrali sobie
poszczególni mafiozi
-
wyznaczy minimalną i maksymalną liczbę ofiar strzelaniny
-
wypisze wynik na standardowe wyjście.
Wejście
W pierwszym wierszu standardowego wejścia zapisana jest liczba uczestników
().
Są oni ponumerowani od do .
W drugim wierszu znajduje się liczb całkowitych ,
pooddzielanych pojedynczymi odstępami, .
Liczba jest numerem uczestnika, w którego celuje uczestnik nr .
Może się zdarzyć, że .
Wyjście
Twój program powinien wypisać w pierwszym i jedynym wierszu standardowego
wyjścia dwie liczby całkowite, oddzielone pojedynczym odstępem:
minimalną i maksymalną liczbę ofiar, będących końcowym wynikiem strzelaniny.
Przykład
Dla danych wejściowych:
8
2 3 2 2 6 7 8 5
poprawną odpowiedzią jest:
3 5
Autor zadania: Wojciech Rytter.