Pagini recente » Cod sursa (job #176630) | Cod sursa (job #1153299) | Cod sursa (job #2868882) | Cod sursa (job #2700780) | Cod sursa (job #914223)
Cod sursa(job #914223)
#include <cstdio>
#include <algorithm>
#define NMAX 502
#define INF 0x03f3f3f3f3f3f
using namespace std;
int n;
long long d[NMAX];
long long s[NMAX][NMAX];
void read()
{
freopen("podm.in", "r", stdin);
scanf("%d\n", &n);
for(int i = 0; i <= n; ++ i)
scanf("%lld ", &d[i]);
}
long long solve()
{
for(int i = 1; i < n; ++ i)
s[i][i + 1] = d[i - 1] * d[i] * d[i + 1];
for(int l = 2; l < n; ++ l)
for(int i = 1; i <= n - l; ++ i)
{
int j = l + i;
s[i][j] = INF;
for(int k = i; k <= j - 1; ++ k)
s[i][j] = min(s[i][j], s[i][k] + s[k + 1][j] + d[i - 1] * d[k] * d[j]);
}
return s[1][n];
}
int main()
{
read();
freopen("podm.out", "w", stdout);
printf("%lld\n", solve());
return 0;
}