풀이
,
코드
#include <cstdio>
#include <algorithm>
using namespace std;
int n, t, h, a[3003], dp[3003];
int main() {
scanf("%d", &n);
for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
scanf("%d %d", &t, &h);
sort(a + 1, a + 1 + n);
for (int i = 1; i <= n; i++) {
dp[i] = dp[i - 1] + a[i] * t;
int cst = h;
for (int j = i; j; j--) {
cst += (a[(i + j + 1) / 2] - a[j]) * t;
dp[i] = min(dp[i], dp[j - 1] + cst);
}
}
printf("%d ", dp[n]);
return 0;
}
아무말
백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이