Pagini recente » Borderou de evaluare (job #1569152) | Cod sursa (job #1221983) | Cod sursa (job #2109749) | Cod sursa (job #2486907) | Cod sursa (job #1064892)
#include<stdio.h>
long long v[500],min[500][500];
int minof2(int a,int b)
{
if(a<b)
return a;
return b;
}
int main()
{
FILE *fin,*fout;
fin=fopen("podm.in","r");
fout=fopen("podm.out","w");
int n;
fscanf(fin,"%d",&n);
int i;
for(i=0;i<=n;i++)
fscanf(fin,"%lld",&v[i]);
for(i=1;i<=n;i++)
min[i][i]=0;
for(i=1;i<n;i++)
min[i][i+1]=v[i-1]*v[i]*v[i+1];
int w;
for(w=2;w<n;w++)
for(i=1;i<=n-w;i++)
{
min[i][i+w]=999999999;
int j;
for(j=i;j<=i+w-1;j++)
min[i][i+w]=minof2(min[i][i+w],min[i][j]+min[j+1][i+w]+v[i-1]*v[j]*v[i+w]);
}
fprintf(fout,"%lld",min[1][n]);
return 0;
}