만드는 중입니다

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

무거운 돌

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

요약
시작 더미 k마다, 선택된 더미를 옆 더미와 계속 합치면서 모든 더미를 하나로 만들 때의 최소 총비용을 구합니다.
난이도

어려움10점 중 9점

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

문제

Garsia-Wachs 알고리즘을 배운 뒤 다음 문제를 떠올렸다.

한 줄에 돌 무더기가 nn개 놓여 있다. ii번째 무더기에는 돌이 aia_i개 있다. 모든 돌을 하나의 무더기로 합치려 한다.

먼저 kk번째 무더기를 고른다. 선택한 무더기에 대해 다음 연산을 수행한다. 선택한 무더기의 왼쪽 또는 오른쪽에 인접한 무더기를 골라 두 무더기를 하나로 합친다. 합쳐진 새 무더기가 연산 후의 선택된 무더기가 된다. 이 연산을 n−1n-1번 수행하면 무더기는 하나만 남는다. 합치기 한 번의 비용은 새 무더기에 있는 돌의 개수이다.

처음에 kk번째 무더기를 골랐을 때 총 비용의 최솟값을 구하라. k=1,2,…,nk=1, 2, \ldots, n에 대해 답을 출력하라.

입력

첫째 줄에 정수 nn이 주어진다 (1≤n≤2⋅1051 \le n \le 2 \cdot 10^5).

둘째 줄에 정수 a1,a2,…,ana_1, a_2, \ldots, a_n이 주어진다 (1≤ai≤1061 \le a_i \le 10^6).

출력

정수 nn개를 출력한다. kk번째 수는 처음에 kk번째 무더기를 골랐을 때의 총 비용의 최솟값이다.

힌트

처음에 4번째 무더기를 고르면 과정은 다음과 같이 진행될 수 있다.

{2, 1, 3, 5, 4} → {2, 1, 8, 4} → {2, 9, 4} → {11, 4} → {15}

총 비용은 8 + 9 + 11 + 15 = 43이다.

예제2

  1. 예제 1

    입력
    5
    2 1 3 5 4
    
    예상 출력
    35 35 36 43 49
    
  2. 예제 2

    입력
    10
    18 37 81 6 58 99 87 34 75 9
    
    예상 출력
    2637 2637 2657 2657 2695 2949 2995 2905 2880 2880