시간 제한메모리 제한제출정답맞힌 사람정답 비율
7 초 (추가 시간 없음) 1024 MB111100.000%

문제

Bajtyna dostała ostatnio ciekawą grę o nazwie Usuwanka. Jest to gra jednoosobowa, w której gracz posługuje się zestawem N klocków ułożonych w rząd od lewej do prawej. Na każdym klocku znajduje się pewna liczba całkowita nieujemna, na i-tym klocku z lewej strony znajduje się liczba Ti. Rozważmy przykładowy zestaw N = 7 klocków, na których kolejno znajdują się liczby (4, 1, 5, 2, 4, 1, 3).

W każdej turze Bajtyna wybiera pewien klocek, usuwa go z zestawu, a razem z nim usuwa tyle sąsiadów po prawej stronie, ile wynosiła liczba na wybranym klocku. Czyli jeśli wybierze klocek na pozycji i, to usunie, oprócz niego, Ti klocków z prawej. Jeżeli klocków po prawej stronie wybranego elementu jest mniej niż Ti to wszystkie klocki po prawej są usuwane. Jeżeli jednak po prawej stronie po usunięciu klocków pozostaną jeszcze jakieś klocki, to przysuwane są one w lewo tak, aby w ciągu klocków nie powstała dziura.

Dla przykładu, jeżeli Bajtyna wybrałaby klocek na czwartej pozycji z liczbą T4 = 2 to usunięty zostanie ten klocek oraz 2 klocki z jego prawej strony, to jest klocek na piątej i szóstej pozycji. Wtedy Bajtynie pozostaną klocki: (4, 1, 5, 3) (jak na rysunku poniżej).

Załóżmy, że teraz Bajtyna wybrała klocek na pierwszej pozycji z liczbą T1 = 4. Po prawej stronie są już jedynie 3 klocki, dlatego Bajtyna może w ten sposób usunąć wszystkie klocki.

Celem gry jest usunięcie wszystkich klocków. Bajtyna zawsze była zwolenniczką zasady, żeby nie robić więcej niż potrzeba – w tym przypadku, chciałaby osiągnąć cel gry wykonując jak najmniej ruchów. Czy pomożesz jej w tym zadaniu?

Napisz program, który wczyta początkowy ciąg klocków w grze Usuwanka, wyznaczy minimalną liczbę ruchów niezbędną do usunięcia wszystkich klocków i wypisze wynik na standardowe wyjście.

입력

W pierwszym wierszu wejścia znajduje się jedna liczba całkowita N (1 ≤ N ≤ 200 000), określająca liczbę klocków. W drugim (ostatnim) wierszu wejścia znajduje się ciąg N nieujemnych liczb całkowitych Ti (0 ≤ Ti < N), pooddzielanych pojedynczymi odstępami – są to liczby znajdujące się na kolejnych klockach od lewej do prawej.

출력

W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć jedna liczba całkowita – minimalna liczba ruchów potrzebnych do usunięcia wszystkich klocków.

예제 입력 1

7
4 1 5 2 4 1 3

예제 출력 1

2

Wyjaśnienie do przykładu: Bajtyna może zacząć od wybrania klocka na czwartej pozycji z liczbą 2, a następnie mogłaby wybrać klocek na pierwszej pozycji liczbą 4 (zgodnie z przykładem opisanym w treści powyżej). Zauważ, że nie jest to jedyna możliwa optymalna sekwencja ruchów. Można także zacząć od wybrania klocka 5 na trzeciej pozycji, a następnie klocka 4 na pierwszej pozycji. Jeszcze inną możliwością jest wybranie klocka 4 na piątej pozycji, a następnie klocka 4 na pierwszej pozycji.

예제 입력 2

5
1 1 1 1 1

예제 출력 2

3

Wyjaśnienie do przykładu: W tym przypadku, Bajtyna mogłaby wielokrotnie wybierać zawsze pierwszy klocek, co usuwałoby go oraz sąsiadujący klocek z prawej (o ile istnieje). A zatem po pierwszym ruchu ciąg klocków to (1, 1, 1), po drugim: (1), a po trzecim nie mamy już żadnego klocka.

예제 입력 3

5
4 4 4 4 4

예제 출력 3

1

Wyjaśnienie do przykładu: W tym przypadku wystarczy, żeby Bajtyna wybrała pierwszy klocek. Spowoduje to usunięcie wszystkich klocków.

예제 입력 4

6
0 0 0 0 0 0

예제 출력 4

6

Wyjaśnienie do przykładu: W tym przypadku wybory Bajtyny nie mają znaczenia, i tak musi wybrać każdy klocek tego ciągu uzyskując po drodze (0, 0, 0, 0, 0), (0, 0, 0, 0), (0, 0, 0), (0, 0), (0) oraz na końcu ciąg pusty.