무거운 돌
시간 제한2초메모리 제한512 MB
시작 더미 k마다, 선택된 더미를 옆 더미와 계속 합치면서 모든 더미를 하나로 만들 때의 최소 총비용을 구합니다.
문제
Garsia-Wachs 알고리즘을 배운 뒤 다음 문제를 떠올렸다.
한 줄에 돌 무더기가 개 놓여 있다. 번째 무더기에는 돌이 개 있다. 모든 돌을 하나의 무더기로 합치려 한다.
먼저 번째 무더기를 고른다. 선택한 무더기에 대해 다음 연산을 수행한다. 선택한 무더기의 왼쪽 또는 오른쪽에 인접한 무더기를 골라 두 무더기를 하나로 합친다. 합쳐진 새 무더기가 연산 후의 선택된 무더기가 된다. 이 연산을 번 수행하면 무더기는 하나만 남는다. 합치기 한 번의 비용은 새 무더기에 있는 돌의 개수이다.
처음에 번째 무더기를 골랐을 때 총 비용의 최솟값을 구하라. 에 대해 답을 출력하라.
입력
첫째 줄에 정수 이 주어진다 ().
둘째 줄에 정수 이 주어진다 ().
출력
정수 개를 출력한다. 번째 수는 처음에 번째 무더기를 골랐을 때의 총 비용의 최솟값이다.
힌트
처음에 4번째 무더기를 고르면 과정은 다음과 같이 진행될 수 있다.
{2, 1, 3, 5, 4} → {2, 1, 8, 4} → {2, 9, 4} → {11, 4} → {15}
총 비용은 8 + 9 + 11 + 15 = 43이다.