Pagini recente » Cod sursa (job #1955385) | Cod sursa (job #2952977) | Cod sursa (job #1135977) | Cod sursa (job #1430711) | Cod sursa (job #1959784)
#include <cstring>
#include <cstdio>
#include <vector>
#include <queue>
#include <algorithm>
#include <cmath>
#define MaxN 505
#define INF 10000000000000
using namespace std;
FILE*IN,*OUT;
int N;
long long DP[MaxN][MaxN],v[MaxN];
int main()
{
IN=fopen("podm.in","r");
OUT=fopen("podm.out","w");
fscanf(IN,"%d",&N);
for(int i=0;i<=N;i++)
fscanf(IN,"%d",&v[i]);
for(int i=1;i<N;i++)
DP[i][i+1]=v[i-1]*v[i]*v[i+1];
for(int Dist=2;Dist<N;Dist++)
{
for(int i=1;i<=N-Dist;i++)
{
DP[i][i+Dist]=INF;
for(int j=i;j<=i+Dist;j++)
DP[i][i+Dist]=min(DP[i][i+Dist],v[i-1]*v[j]*v[i+Dist]+DP[i][j]+DP[j+1][i+Dist]);
}
}
fprintf(OUT,"%lld",DP[1][N]);
return 0;
}