만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

구간 편집

시간 제한4초메모리 제한2048 MB

요약
길이 n의 셀 행에서 0은 빈 셀을 뜻하는 목표 값이 주어질 때, 구간 값 지정과 구간 비우기 연산의 최소 횟수를 구합니다.
난이도

어려움10점 중 8점

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

문제

스프레드시트에 셀이 한 줄로 놓여 있다. 처음에는 모든 셀이 비어 있다. 다음 두 가지 연산을 수행할 수 있다.

  1. 연속된 구간의 셀을 원하는 양의 정수 하나로 바꾼다. 구간의 모든 셀은 연산 후 같은 값을 가진다.
  2. 연속된 구간의 셀 값을 지운다. 구간의 모든 셀은 연산 후 비게 된다.

원하는 최종 셀 값이 주어졌을 때, 그 값을 얻는 데 필요한 편집 연산의 최소 횟수를 구하시오.

입력

첫째 줄에 셀의 개수를 나타내는 정수 nn (1≤n≤8001 \leq n \leq 800)이 주어진다. 셀은 1번부터 nn번까지 번호가 매겨져 있다.

이어지는 nn개의 줄에는 00 이상 10910^9 이하의 정수가 한 개씩 주어진다. ii번째 줄의 정수가 00이면 모든 연산 후 ii번 셀이 비어 있어야 한다. 그렇지 않으면 그 값이 ii번 셀의 최종 값이다.

출력

필요한 편집 연산의 최소 횟수를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    10
    0
    1
    2
    3
    4
    2
    1
    0
    0
    1
    
    예상 출력
    5