Pagini recente » Cod sursa (job #1778870) | Cod sursa (job #453943) | Cod sursa (job #2214488) | Cod sursa (job #2084531) | Cod sursa (job #1135189)
#include <fstream>
#define INF 999999999999999999LL
#define minim(a,b) (((a)<(b))?(a):(b))
#define NMAX 505
using namespace std;
FILE* f=freopen("podm.in","r",stdin);
FILE* o=freopen("podm.out","w",stdout);
int n;
long long m[NMAX][NMAX];
int d[NMAX];
int main()
{
scanf("%d",&n);
for(int i=0;i<=n;++i)
{
scanf("%d",&d[i]);
}
for(int i=1;i<n;++i)
{
m[i][i+1]=d[i-1]*d[i]*d[i+1];
}
for(int x=2;x<n;++x)
{
for(int i=1;i+x<=n;++i)
{
m[i][i+x]=INF;
for(int k=i;k<i+x;++k)
{
m[i][i+x]=minim(m[i][k]+m[k+1][i+x]+d[i-1]*d[k]*d[i+x],m[i][i+x]);
}
}
}
printf("%lld",m[1][n]);
return 0;
}