Pagini recente » Cod sursa (job #1523176) | Cod sursa (job #1308570) | Cod sursa (job #2694028) | Cod sursa (job #574028) | Cod sursa (job #965948)
Cod sursa(job #965948)
#include<cstdio>
#include<algorithm>
using namespace std;
const int NMAX = 505;
const long long INF = 1LL<<62;
long long DP[NMAX][NMAX],D[NMAX];
long long Solve(int i,int j)
{
if(DP[i][j]!=INF) return DP[i][j];
for(int k=i;k<j;k++) DP[i][j]=min(DP[i][j],Solve(i,k)+Solve(k+1,j)+D[i-1]*D[k]*D[j]);
return DP[i][j];
}
int main()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
int N,i,j; scanf("%d",&N);
for(i=0;i<=N;i++) scanf("%lld",&D[i]);
for(i=1;i<=N;i++) for(j=1;j<=N;j++) if(i==j) DP[i][j]=0; else DP[i][j]=INF;
printf("%lld\n",Solve(1,N));
return 0;
}