Pagini recente » Cod sursa (job #1176301) | Cod sursa (job #2831564) | Cod sursa (job #1091791) | Cod sursa (job #752879) | Cod sursa (job #755713)
Cod sursa(job #755713)
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <algorithm>
using namespace std;
#define nmax 505
#define inf 100000000000000000LL
#define ll long long
ll Best[nmax][nmax], d[nmax];
int n;
int main()
{
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
int i, j, k, w;
scanf("%i", &n);
for(i = 0; i <= n; i++) scanf("%i", &d[i]);
for(i = 1; i <= n; i++) Best[i][i] = 0;
for(i = 1; i < n; i++) Best[i][i + 1] = d[i - 1] * d[i] * d[i + 1];
for(w = 2; w <= n - 1; w++)
{
for(i = 1; i <= n - w; i++)
{
int j = i + w;
Best[i][j] = inf;
for(k = i; k <= j - 1; k++)
Best[i][j] = min(Best[i][j], Best[i][k] + Best[k + 1][j] + d[i - 1] * d[j] * d[k]);
}
}
printf("%lld\n", Best[1][n]);
return 0;
}