Pagini recente » Cod sursa (job #1803935) | Cod sursa (job #612782) | Cod sursa (job #2668442) | Cod sursa (job #550547) | Cod sursa (job #1074193)
/*
Keep It Simple!
*/
#include <stdio.h>
#define inf 100000000000000000LL
#define min(a,b) a<b ? a:b
long long n,d[510],m[510][510];
int main()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%lld",&n);
for(int i=0; i<=n; i++)
{
scanf("%lld",&d[i]);
}
for(int i=1; i<=n; i++)
m[i][i] = 0;
for(int i=1; i<n; i++)
m[i][i+1] = d[i-1] * d[i] * d[i+1];
for(int j=2; j<n; j++)
for(int i=1; i<n-j; i++)
{
m[i][i+j] = inf;
for(int k=i; k<i+j; k++)
m[i][i+j] = min ( m[i][i+j], m[i][k] + m[k+1][i+j] + d[i-1]*d[k]*d[i+j]);
}
printf("%lld",m[1][n]);
}