Wyliczanka
Limit pamięci: 32 MB
Dzieci ustawiły się w kółko i bawią się w wyliczankę.
Dzieci są ponumerowane od do w ten sposób, że
(dla ) na lewo od dziecka nr stoi dziecko nr
, a na lewo od dziecka nr stoi dziecko nr .
Dziecko, "na które wypadnie" w wyliczance, wypada z kółka.
Wyliczanka jest powtarzana, aż nikt nie zostanie w kółku. Zasady wyliczanki są następujące:
- Pierwszą wyliczankę zaczyna dziecko nr .
Każdą kolejną wyliczankę zaczyna dziecko stojące na lewo od dziecka, które ostatnio wypadło z kółka.
- Wyliczanka za każdym razem składa się z sylab. Dziecko, które zaczyna wyliczankę,
mówi pierwszą jej sylabę; dziecko stojące na lewo od niego mówi drugą sylabę, kolejne dziecko trzecią itd.
Dziecko, które mówi ostatnią sylabę wyliczanki, wypada z kółka.
Obserwujemy dzieci bawiące się w wyliczankę i widzimy, w jakiej kolejności wypadają one z kółka. Na podstawie tej informacji próbujemy odgadnąć, z ilu sylab składa się wyliczanka.
Zadanie
Napisz program, który:
- wczyta ze standardowego wejścia opis kolejności, w jakiej dzieci wypadały z kółka,
- wyznaczy najmniejszą dodatnią liczbę , dla której dzieci bawiąc się w
-sylabową wyliczankę będą wypadać z kółka w zadanej kolejności, lub stwierdzi,
że takie nie istnieje,
- wypisze na standardowe wyjście wyznaczoną liczbę lub słowo NIE w przypadku,
gdy takie nie istnieje.
Wejście
W pierwszym wierszu standardowego wejścia znajduje się jedna dodatnia liczba całkowita
, . W drugim wierszu znajduje się
liczb całkowitych pooddzielanych pojedynczymi odstępami -
-ta liczba określa, jako które z kolei dziecko nr wypadło z kółka.
Wyjście
Twój program powinien zapisać w pierwszym i jedynym wierszu standardowego wyjścia jedną liczbę całkowitą:
najmniejszą liczbę () sylab, jakie może mieć wyliczanka, lub jedno słowo NIE, jeśli taka liczba nie istnieje.
Przykład
Dla danych wejściowych:
4
1 4 2 3
poprawną odpowiedzią jest:
5
Autor zadania: Jakub Pawlewicz.