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

2020-2022 2023 Regulations Schedule RODO info Ranking

Problem description


Problem kilku hetmanów
(problem-hetmanow)
Limit pamięci: 64 MB
Limit czasu: 1.00 s

Pan Janusz – Prezes firmy Januszex, ponownie znalazł chwilę czasu, aby pobawić się hetmanami na szachownicy (wcześniej bawił się nimi przy okazji zadania Hetmany prezesa z ósmego sparingu). Tym razem zamiast ustawiać jednego hetmana i zastanawiać się ile pól on szachuje, zaczął on ustawiać na szachownicy więcej hetmanów i zastanawiać się jak one się szachują wzajemnie.

Dokładniej, Pan Janusz chciałby rozważać problem znany w informatyce pod nazwą problem ośmiu hetmanów. Problem ten polega na ustawieniu ośmiu hetmanów na zwykłej szachownicy w taki sposób, aby żaden nie atakował innego. Pan Janusz postanowił spróbować szczęścia z tym problemem. Niestety, w Januszex S.A. produkowane są tylko szachownice wymiaru N × N, więc postanowił on ustawiać N hetmanów na takiej szachownicy.

Błyskotliwy umysł Pana Janusza pozwolił mu zauważyć, że jedyna szansa na to, aby ustawić N nieatakujących się hetmanów będzie wtedy, gdy w każdym wierszu postawi dokładnie jednego hetmana. Postanowił więc stawiać hetmany po kolei – najpierw wybrać pole w pierwszym wierszu i postawić tam hetmana, potem pole w drugim wierszu itd. Niestety, mimo jego całego geniuszu, zdarza mu się popełniać błędy – czasami postawi hetmana źle i jest on wtedy atakowany przez innego. Chciałby mieć program, który zasygnalizuje mu takie sytuacje – wówczas Pan Janusz w ogóle zrezygnuje z postawienia hetmana w danym wierszu i przejdzie do następnego. Jeśli jednak hetman jest postawiony poprawnie – program powinien zasygnalizować, że wszystko jest dobrze, a wtedy Pan Janusz pozostawi tam hetmana. Twoim zadaniem jest oczywiście napisać wspomniany program. Ile hetmanów, zgodnie ze swoją strategią, uda się postawic Panu Januszowi?

Napisz program, który: wczyta ciąg pozycji, w których Pan Janusz chce postawić hetmana, wyznaczy liczbę hetmanów, które będą poprawnie ustawione zgodnie ze strategią Pana Janusza i wypisze wynik na standardowe wyjście.

Wejście

W pierwszym wierszu wejścia znajduje się jedna liczba naturalna N, określająca wymiar planszy, a zarazem liczbę hetmanów, które będzie stawiał Pan Janusz. W drugim (ostatnim) wierszu wejścia znajduje się ciąg N liczb naturalnych Ai, pooddzielonych pojedynczymi odstępami – i-ta liczba w ciągu określa, że Pan Janusz chce postawić hetmana w i-tym wierszu w Ai-tej kolumnie.

Wiersze oraz kolumny numerowane są kolejnymi liczbami naturalnymi od 1 do N włącznie.

Wyjście

W pierwszym (i jedynym) wierszu wyjścia należy wypisać jedną nieujemną liczbę całkowitą – liczbę hetmanów, które postawi na szachownicy Pan Janusz.

Ograniczenia

1 ≤ N ≤ 500 000.

Przykład

Wejście Wyjście Wyjaśnienie
5
2 1 5 3 3
3

Pan Janusz ustawia pierwszego hetmana w pierwszym wierszu w drugiej kolumnie. Następnie próbuje ustawić hetmana w drugim wierszu w pierwszej kolumnie – niestety ten hetman byłby atakowany przez wcześniej postawionego, więc Pan Janusz rezygnuje z jego ustawienia. Następnie Pan Janusz ustawia hetmana w trzecim wierszu w piątej kolumnie i w czwartym wierszu w trzeciej kolumnie. Na końcu Pan Janusz próbuje ustawić hetmana w piątym wierszu w trzeciej kolumnie – niestety ten hetman byłby atakowany przez hetmana z trzeciego lub czwartego wiersza, Pan Janusz odpuszcza ustawienie tam hetmana.

Ostatecznie udało się ustawić trzech hetmanów.