Pagini recente » Cod sursa (job #501520) | Cod sursa (job #6408) | Cod sursa (job #1251863) | Cod sursa (job #1113895) | Cod sursa (job #1128684)
#include <cstdio>
#include <algorithm>
using namespace std;
const long long INFI = 1LL * 5e18;
const int NMAX = 503;
long long D[NMAX][NMAX];
int L[NMAX];
int main () {
freopen ("podm.in", "r", stdin);
freopen ("podm.out", "w", stdout);
int N, i, j, k, f;
scanf ("%d", &N);
for (i = 0; i <= N; ++i)
scanf ("%d", L + i);
for (i = 1; i < N; ++i)
D[i][i + 1] = 1LL * L[i - 1] * L[i] * L[i + 1];
for (i = 2; i <= N; ++i) {
for (j = 1; j <= N - i; ++j) {
f = j + i;
D[j][f] = INFI;
for (k = j; k < f; ++k)
D[j][f] = min (D[j][f], D[j][k] + D[k + 1][f] + (1LL * L[j - 1] * L[k] * L[f]));
}
}
printf ("%lld", D[1][N]);
}