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

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

돌 분배

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

요약
용량 v인 n개의 난로에 s개의 돌을 정확히 나누어 담아, 각 칸이 받는 열 k_i 곱하기 인접한 두 난로 돌 개수의 곱의 합을 최소로 만든다.
난이도

보통10점 중 7점

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

문제

이노폴리스 스포츠 센터에는 놀라울 정도로 잘 갖춰진 첨단 사우나가 있다. 하지만 건설 과정에서 복잡한 기술이 사용되었기 때문에 사람들은 이 사우나를 제대로 관리하는 방법을 알지 못한다.

사우나에는 n−1n - 1개의 연속한 칸이 있다. 인접한 두 칸 사이마다 난로가 하나씩 있다. 난로는 두 개 더 있는데, 하나는 첫 번째 칸에만 연결되어 있고 다른 하나는 마지막 칸에만 연결되어 있다. 따라서 난로는 모두 정확히 nn개다.

ii번째 칸의 부피는 kik_i이다. 각 난로에는 0개부터 vv개까지의 돌을 넣을 수 있다. ii번째 난로에 들어 있는 돌의 수를 pip_i라고 하면, ii번째 칸은 ki⋅pi⋅pi+1k_i \cdot p_i \cdot p_{i + 1}만큼의 열을 받는다.

스포츠 센터에는 난로용 돌이 ss개 있다. 스포츠 센터 관리팀은 다른 곳까지 데워지지 않도록 모든 칸이 받는 열의 합을 최소로 만들려고 한다. 하지만 돌을 사는 데 돈이 들었으므로 돌은 전부 사용해야 한다. 관리팀이 이 문제를 해결하도록 도와주자.

입력

첫째 줄에는 세 정수 nn, ss, vv가 주어진다. 각각 난로의 수, 돌의 수, 난로의 용량이다(2≤n≤10002 \le n \le 1000, 1≤v≤1051 \le v \le 10^5, s≤n⋅vs \le n \cdot v).

둘째 줄에는 n−1n - 1개의 정수 kik_i가 주어진다. ii번째 칸의 부피이다(1≤ki≤1051 \le k_i \le 10^5).

출력

모든 칸이 받는 열의 합의 최솟값을 출력한다.

힌트

예제의 정답은 첫 번째와 마지막 난로에 돌을 네 개씩 넣고 두 번째 난로에 두 개를 넣으면 얻을 수 있다. 그러면 두 번째 칸을 제외한 모든 칸의 열은 0이고, 두 번째 칸의 열은 88이다.

예제1

  1. 예제 1

    입력
    4 10 4
    1 2 3
    
    예상 출력
    8