아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Ornitolog 2

면접 대비

시간 제한1초메모리 제한1024 MB

요약
정수 수열에서 연속한 차이가 부호를 번갈아 가지며 증가와 감소를 반복하도록 최소 개수의 원소를 바꾸고, 그 최소 개수를 출력한다.
난이도

보통10점 중 6점

유형
동적 계획법, 그리디, 배열, 구현
정답자
아직 제출이 없습니다

문제

Pliszka alternująca (Motacilla alterna) to gatunek ptaka z rodziny pliszkowatych. Wyróżnia go charakterystyczny śpiew, w którym wysokość tonu kolejnych dźwięków naprzemiennie rośnie i maleje. Dla przykładu, jeżeli będziemy reprezentować wysokości dźwięków za pomocą liczb całkowitych, to pliszka alternująca może zaśpiewać [2, 1, 3] i [4, 5, −6, −5], ale nie [1, 2, 3, 2] i [6, 5, 5, 4]. W celu nagrania tych fascynujących stworzeń ornitolog Bajtazar pozostawił swój dyktafon na kilka dni w lesie. Teraz zastanawia się, czy nagrane dźwięki są podobne do śpiewu pliszki.

Napisz program, który dla danego ciągu wysokości dźwięków wyznaczy minimalną liczbę jego wyrazów, które trzeba zmienić na dźwięk o dowolnej całkowitoliczbowej wysokości z przedziału [−109, 109], żeby ciąg przedstawiał możliwy śpiew pliszki alternującej.

입력

W pierwszym wierszu standardowego wejścia znajduje się jedna liczba całkowita n (3 ≤ n ≤ 50 000), oznaczająca długość nagrania.

Kolejny wiersz zawiera n liczb całkowitych a1, a2, . . . , an (−1 000 000 ≤ ai ≤ 1 000 000), gdzie ai jest wysokością i-tego dźwięku w nagraniu.

출력

Na wyjściu powinna znaleźć się jedna liczba całkowita, oznaczająca minimalną liczbę zmienionych dźwięków.

힌트

Wyjaśnienie przykładów: W pierwszym teście przykładowym, aby ciąg mógł zostać zaśpiewany przez pliszkę alternującą, wystarczy zmienić czwarty wyraz ciągu, na przykład na −1. W drugim teście przykładowym trzeba zmienić co najmniej dwa wyrazy, otrzymując na przykład ciąg [−1 000 001, −1 000 000, −1 000 002, −1 000 000].

예제2

  1. 예제 1

    입력
    5
    4 1 3 3 1
    
    예상 출력
    1
    
  2. 예제 2

    입력
    4
    -1000000 -1000000 -1000000 -1000000
    
    예상 출력
    2