Pagini recente » Cod sursa (job #301702) | Cod sursa (job #347939) | Cod sursa (job #1642216) | Cod sursa (job #2733221) | Cod sursa (job #823952)
Cod sursa(job #823952)
#include <cstdio>
#include <algorithm>
using namespace std;
long long int inm[501][501];
short int d[501];
long long int best(int a,int b)
{
if(inm[a][b] || a== b)
return inm[a][b];
int k;
inm[a][b] = 1LL << 63;
for(k=a;k<b;++k)
inm[a][b] = min(inm[a][b],best(a,k) + best(k+1,b) + d[a-1] * d[k] * d[b]);
return inm[a][b];
}
int main()
{
int i,n;
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%d",&n);
for(i=0;i<=n;++i)
scanf("%d",&d[i]);
printf("%lld\n",best(1,n));
return 0;
}