Pagini recente » Cod sursa (job #2750964) | Cod sursa (job #1052933) | Cod sursa (job #268168) | Cod sursa (job #1528616) | Cod sursa (job #761625)
Cod sursa(job #761625)
#include<cstdio>
#include<algorithm>
long long m[505][505];
long long d[505];
long long calc (int x,int y)
{
if(m[x][y])
return m[x][y];
if(x==y)
return 0;
if(x+1==y)
return d[x-1]*d[x]*d[x+1];
long long r=1000000000000000000LL;
for(int k=x;k<y;k++)
r=std::min (r,m[x][k]+m[k+1][y]+d[x-1]*d[k]*d[y]);
return r;
}
int main()
{
freopen ("podm.in","r",stdin);
freopen ("podm.out","w",stdout);
int n;
scanf ("%d",&n);
for(int i=0;i<=n;i++)
scanf ("%lld",d+i);
for(int d=0;d<n;d++)
for(int i=1;i<=n-d;i++)
m[i][i+d]=calc (i,i+d);
printf ("%lld",calc (1,n));
return 0;
}