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

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

노래방

면접 대비

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

요약
음표 열을 두 사람에게 나누어, 각자가 부른 부분 열에서 연속한 음의 높이 차 절댓값 합의 총합이 최소가 되게 한다.
난이도

보통10점 중 7점

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

문제

영선이와 효빈이가 노래방에서 노래 한 곡을 나눠 부른다.

음의 높이는 1부터 1,000,000까지의 정수로 나타내며, 1이 가장 낮은 음이고 1,000,000이 가장 높은 음이다. 두 사람은 어떤 음이든 음정이 어긋나지 않게 부를 수 있다.

노래는 음이 순서대로 늘어선 것이고, 각 음은 두 사람 중 정확히 한 사람이 부른다.

한 사람이 느끼는 난이도는 자기가 부른 음을 부른 순서대로 늘어놓았을 때 이웃한 두 음의 높이 차이를 모두 더한 값이다. 예를 들어 영선이가 8, 8, 13, 12를 불렀다면 난이도는 ∣8−8∣+∣13−8∣+∣12−13∣=0+5+1=6|8-8| + |13-8| + |12-13| = 0 + 5 + 1 = 6이다. 음을 하나만 부른 사람과 한 음도 부르지 않은 사람의 난이도는 0이다.

두 사람이 느끼는 난이도의 합이 최소가 되도록 음을 나눌 때, 그 합의 최솟값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 노래에 포함된 음의 개수 NN (1≤N≤20001 \le N \le 2000)이 주어진다.

둘째 줄에 노래의 음이 부르는 순서대로 NN개 주어진다. 각 음의 높이는 1 이상 1,000,000 이하의 정수이다.

출력

첫째 줄에 두 사람이 느끼는 난이도의 합의 최솟값을 출력한다.

힌트

첫 번째 예제는 영선이가 앞의 두 음을 부르고 효빈이가 뒤의 세 음을 부를 때 최소가 된다. 두 번째 예제는 영선, 효빈, 효빈, 영선, 영선 순서로 부를 때 최소가 된다.

예제3

  1. 예제 1

    입력
    5
    1 3 8 12 13
    
    예상 출력
    7
    
  2. 예제 2

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

    입력
    8
    5 5 5 5 4 4 4 4
    
    예상 출력
    0