Pagini recente » Cod sursa (job #2960173) | Cod sursa (job #2646983) | Cod sursa (job #1154689) | Cod sursa (job #1454409) | Cod sursa (job #1109617)
#include <stdio.h>
using namespace std;
FILE*f=fopen("podm.in","r");
FILE*g=fopen("podm.out","w");
#define INF 1000000000000000LL
long long A[505][505],Dim[505];
int i,j,n;
long long Min(long long a,long long b)
{
if (a<b) return a;
else return b;
}
int main()
{
fscanf(f,"%d",&n);
for (i=0;i<=n;i++) fscanf(f,"%lld",&Dim[i]);
for (i=1;i<=n;i++) A[i][i]=0;
for (i=1;i<n;i++) A[i][i+1]=Dim[i-1]*Dim[i]*Dim[i+1];
for (int w=2;w<n;w++)
{
for (i=1;i<=n-w;i++)
{
j=i+w;
A[i][j]=INF;
for (int k=i;k<j;k++)
A[i][j]=Min(A[i][j],A[i][k]+A[k+1][j]+Dim[i-1]*Dim[k]*Dim[j]);
}
}
fprintf(g,"%lld",A[1][n]);
return 0;
}