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

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

바이트컴퓨터

시간 제한3초메모리 제한512 MB

요약
-1, 0, 1 수열에서 왼쪽 원소를 오른쪽 이웃에 더하는 연산을 반복해 비내림차순 수열을 최소 횟수로 만들고 불가능하면 BRAK을 출력합니다.
난이도

보통10점 중 7점

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

문제

{−1,0,1}\{-1, 0, 1\}의 원소로 이루어진 정수 수열 x1,x2,…,xnx_1, x_2, \dots, x_n이 주어진다. 바이트컴퓨터는 이 수열에 다음 연산을 할 수 있는 장치다. 1≤i<n1 \le i < n인 ii를 하나 골라 xi+1x_{i+1}에 xix_i를 더한다. 바이트컴퓨터가 다루는 정수의 범위에는 제한이 없다. 즉 각 xix_i는 원리상 얼마든지 작아지거나 커질 수 있다.

수열을 비내림차순으로, 다시 말해 x1≤x2≤⋯≤xnx_1 \le x_2 \le \dots \le x_n이 되도록 만들려고 한다. 이때 필요한 연산 횟수의 최솟값을 구하라.

입력

첫째 줄에 수열의 길이 nn이 주어진다. (1≤n≤1 000 0001 \le n \le 1\,000\,000)

둘째 줄에 수열의 원소 x1,x2,…,xnx_1, x_2, \dots, x_n이 공백 하나로 구분되어 순서대로 주어진다. (xi∈{−1,0,1}x_i \in \{-1, 0, 1\})

출력

수열을 비내림차순으로 만드는 데 필요한 연산 횟수의 최솟값을 한 줄에 출력한다. 어떤 방법으로도 비내림차순으로 만들 수 없으면 대신 BRAK을 출력한다. BRAK은 폴란드어로 '없음'을 뜻한다.

힌트

수열 −1,1,0,−1,0,1-1, 1, 0, -1, 0, 1은 연산 세 번으로 −1,−1,−1,−1,0,1-1, -1, -1, -1, 0, 1이 된다.

예제2

  1. 예제 1

    입력
    6
    -1 1 0 -1 0 1
    
    예상 출력
    3
    
  2. 예제 2

    입력
    2
    0 -1
    
    예상 출력
    BRAK