수열 줄이기

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

요약
인접한 두 원소를 합칠 때 비용이 둘 중 최댓값인 연산을 반복해 길이를 1로 줄일 때 필요한 최소 총 비용을 구합니다.
난이도

보통10점 중 4점

유형
그리디, 배열
정답자
아직 제출이 없습니다

문제

수열 a1,a2,…,ana_1, a_2, \dots, a_n이 주어진다. 연산 reduce(i)\text{reduce}(i)는 인접한 두 원소 aia_i와 ai+1a_{i+1}을 하나로 합쳐 그 자리에 max⁡(ai,ai+1)\max(a_i, a_{i+1})를 놓는 연산이다. 이 연산을 한 번 수행할 때마다 수열의 길이는 11만큼 줄어든다.

reduce\text{reduce} 연산 한 번의 비용은 합쳐지는 두 원소의 최댓값 max⁡(ai,ai+1)\max(a_i, a_{i+1})이다. 길이가 nn인 수열에 이 연산을 n−1n-1번 수행하면 수열의 길이는 11이 된다.

수열의 길이를 11로 만들 때까지 수행한 모든 reduce\text{reduce} 연산의 비용의 합의 최솟값을 구하여라.

입력

첫째 줄에 수열의 길이 nn (1≤n≤1,000,000)(1 \le n \le 1{,}000{,}000)이 주어진다. 이어지는 nn개의 줄에 수열의 원소 aia_i가 순서대로 하나씩 주어진다 (0≤ai≤1,000,000,000)(0 \le a_i \le 1{,}000{,}000{,}000).

출력

수열의 길이를 11로 만드는 데 드는 비용의 합의 최솟값을 첫째 줄에 출력한다.

예제5

  1. 예제 1

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

    입력
    1
    7
    
    예상 출력
    0
    
  3. 예제 3

    입력
    2
    10
    3
    
    예상 출력
    10
    
  4. 예제 4

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

    입력
    3
    2
    1
    3
    
    예상 출력
    5