Pagini recente » Cod sursa (job #2858836) | Cod sursa (job #334794) | Cod sursa (job #260020) | Cod sursa (job #1098591) | Cod sursa (job #1739348)
#include <iostream>
#include <cstdio>
#define NMAX 505
#define inf 1e18
using namespace std;
int N;
long long d[NMAX];
long long dp[NMAX][NMAX];
void citire()
{
scanf("%d",&N);
for(int i=0; i<=N; i++)
scanf("%d",&d[i]);
}
void rezolvare()
{
for(int x=1; x<=N; x++)
for(int y=1; y<N-x+1; y++)
{
int i = y;
int j = x+y;
long long minim = inf;
for(int k=i; k<=j-1; k++)
minim = min(minim,dp[i][k]+dp[k+1][j]+d[i-1]*d[k]*d[j]);
dp[i][j]=minim;
}
cout<<dp[1][N];
}
int main()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
citire();
rezolvare();
return 0;
}