Pagini recente » Cod sursa (job #1193906) | Cod sursa (job #2770791) | Cod sursa (job #1417514) | Cod sursa (job #2276070) | Cod sursa (job #761614)
Cod sursa(job #761614)
#include<cstdio>
#include<algorithm>
long long m[505][505];
int 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=1000000000000000000;
for(int k=x;k<y;k++)
r=std::min (r,calc (x,k)+calc (k+1,y)+d[x-1]*d[k]*d[y]);
m[x][y]=r;
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 ("%d",d+i);
printf ("%lld",calc (1,n));
return 0;
}