Pagini recente » Cod sursa (job #682683) | Cod sursa (job #270122) | Cod sursa (job #157735) | Cod sursa (job #617642) | Cod sursa (job #647815)
Cod sursa(job #647815)
#include<stdio.h>
#define INF 100000000000000000LL
long long m[500][500],v[500];
int n;
int main()
{
int i,a,b,j;
FILE *in,*out;
in=fopen("podm.in","r");
if(!in)
{
printf("EROARE");
return 0;
}
out=fopen("podm.out","w");
if(!out)
{
printf("EROARE");
return 0;
}
fscanf(in,"%d",&n);
for(i=0;i<=n;i++)
fscanf(in,"%llu",&v[i]);
for(i=1;i<=n;i++)
m[i][i]=0;
for(i=1;i<=n;i++)
m[i][i+1]=v[i-1]*v[i]*v[i+1];
for(a=2;a<=n-1;a++)
for(i=1;i<=n;i++)
{
j=i+a;
m[i][j]=INF;
for(b=i;b<=j-1;b++)
if(m[i][j]>m[i][b]+m[b+1][j]+v[i-1]*v[b]*v[j])
m[i][j]=m[i][b]+m[b+1][j]+v[i-1]*v[b]*v[j];
}
fprintf(out,"%llu",m[1][n]);
fclose(out);
fclose(in);
return 0;
}