Pagini recente » Cod sursa (job #1379373) | Cod sursa (job #2601588) | Cod sursa (job #215301) | Cod sursa (job #3254161) | Cod sursa (job #2659503)
#include <cstdio>
using namespace std;
int dim[502];
long long best[502][502];
int main() {
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
int n, next, cand;
scanf("%d", &n);
for(int i=0; i<=n; ++i)
scanf("%d", &dim[i]);
for(int i=1; i<n; ++i)
best[i][i+1] = dim[i-1] * dim[i] * dim[i+1];
for(int i=2; i<n; ++i)
for(int j=1; j<=n-i; ++j) {
next = i + j;
best[j][next] = -1;
for(int k=j; k < next; ++k) {
cand = best[j][k] + best[k+1][next] + dim[j-1] * dim[k] * dim[next];
if (best[j][next] == -1 || best[j][next] > cand)
best[j][next] = cand;
}
}
printf("%lld\n", best[1][n]);
return 0;
}