Pagini recente » Cod sursa (job #2485102) | Cod sursa (job #1471819) | Cod sursa (job #1447858) | Cod sursa (job #2550048) | Cod sursa (job #2505616)
#include <bits/stdc++.h>
using namespace std;
int n,v[1005],d[1005][1005];
int main () {
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%d", &n);
for(int i=1;i<=n+1;++i)
scanf("%d", &v[i]);
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
d[i][j]=(1<<30);
for(int i=1;i<=n;++i)
d[i][i]=0;
for(int i=1;i<n;++i)
d[i][i+1]=v[i]*v[i+1]*v[i+2];
//for(int i=1;i<n;++i)
// for(int j=2;i+j<=n;++j)
for(int j=2;j<n;++j)
for(int i=1;i+j<=n;++i)
for(int k=0;k<j;++k)
d[i][i+j]=min(d[i][i+j],d[i][i+k]+d[i+k+1][i+j]+v[i]*v[i+k+1]*v[i+j+1]);
/*for(int i=1;i<=n;++i) {
for(int j=1;j<=n;++j)
printf("%d ", d[i][j]);
printf("\n");
}*/
printf("%d", d[1][n]);
return 0;
}