Pagini recente » Cod sursa (job #807741) | Cod sursa (job #507748) | Cod sursa (job #489838) | Cod sursa (job #3144664) | Cod sursa (job #1325656)
#include <cstdio>
#include <algorithm>
using namespace std;
const int NMAX = 505;
const long long INF = 1LL << 60;
long long a[NMAX], dp[NMAX][NMAX];
int main() {
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
int N;
scanf("%d", &N);
for(int i = 0; i <= N; ++ i) {
scanf("%lld", &a[i]);
}
for(int l = 2; l <= N; ++ l) {
for(int i = 1; i <= N - l + 1; ++ i) {
int j = i + l - 1;
dp[i][j] = INF;
for(int k = i; k < j; ++ k) {
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] + a[i - 1] * a[k] * a[j]);
}
}
}
printf("%lld", dp[1][N]);
return 0;
}