Pagini recente » Cod sursa (job #2728505) | Cod sursa (job #1973839) | Cod sursa (job #2154634) | Cod sursa (job #578761) | Cod sursa (job #727064)
Cod sursa(job #727064)
#include <stdio.h>
#include <math.h>
long long a[510][510];
long n, i, v[510], l, k;
inline long long cost(long A, long B, long C) {return 1LL * v[A] * v[C] * v[B];}
inline long long min(long A, long B) {if (A < B) return A; return B;}
int main() {
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
scanf("%ld", &n);
for (i = 1; i <= n + 1; ++i) scanf("%ld", &v[i]);
for (l = 2; l <= n; ++l) {
for (i = 1; i <= n - l + 1; ++i) {
a[i][i + l - 1] = 2000000000;
for (k = i; k < i + l - 1 ; ++k) {
long long val = a[i][k] + a[k + 1][i + l - 1];
val += cost(i, k + 1, i + l );
a[i][i + l - 1] = min(a[i][i + l - 1], val );
}
}
}
printf("%lld\n", a[1][n ]);
return 0;
}