Pagini recente » Cod sursa (job #2379077) | Cod sursa (job #1147331) | Cod sursa (job #2517040) | Cod sursa (job #2911364) | Cod sursa (job #2011928)
#include <limits.h>
#include <stdlib.h>
#include <stdio.h>
#include <algorithm>
#define nmax 500
using namespace std;
FILE *fin,*fout;
int n,d[nmax+2],m[nmax+2][nmax+2];
int main()
{
int k;
fin=fopen("podm.in","r");
fout=fopen("podm.out","w");
fscanf(fin,"%d",&n);
for(int i=0;i<=n;i++)
fscanf(fin,"%d",&d[i]);
for(int i=1;i<=n;i++)
m[i][i]=0;
for(int i=1;i<=n-1;i++)
m[i][i+1]=d[i-1]*d[i]*d[i+1];
for(int i=2;i<=n-1;i++)
for(int j=1;j<=n-i;j++)
{
k=i+j;
m[j][k]=INT_MAX;
for(int l=j;l<=k-1;l++)
m[j][k]=min(m[j][k],m[j][l]+m[l+1][k]+d[j-1]*d[l]*d[k]);
}
fprintf(fout,"%d",m[1][n]);
return 0;
}