Pagini recente » Cod sursa (job #2140997) | Cod sursa (job #1651239) | Cod sursa (job #139599) | Cod sursa (job #620299) | Cod sursa (job #632016)
Cod sursa(job #632016)
#include <cstdio>
#include <iostream>
#define MAX_N 505
using namespace std;
long long dim[MAX_N], mat[MAX_N][MAX_N], n;
long long INF = 4611686018427387904;
void read() {
scanf("%lld", &n);
for(int i = 0; i <= n; i ++)
scanf("%lld", &dim[i]);
}
void solve() {
for(int i = 1; i < n; i ++)
mat[i][i + 1] = dim[i -1] * dim[i] * dim[i + 1];
for(int d = 1; d < n; d ++)
for(int i = 1; i <= n - d; i ++) {
mat[i][i + d] = INF;
for(int k = i; k <= i + d; k ++)
mat[i][i + d] = min(mat[i][i + d], mat[i][k] + mat[k + 1][i + d] + dim[i -1] *
dim[k] * dim[i + d]);
}
}
int main() {
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
read();
solve();
printf ("%lld\n", mat[1][n]);
return 0;
}