Pagini recente » Cod sursa (job #757437) | Cod sursa (job #2438403) | Cod sursa (job #319462) | Cod sursa (job #2309901) | Cod sursa (job #647986)
Cod sursa(job #647986)
#include<stdio.h>
#define INF 100000000000000000LL
int min(unsigned long long a,unsigned long long b)
{
if(a<b)
return a;
else
return b;
}
int main()
{
int i,a,b,j,n;
unsigned long long m[505][505],v[505];
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+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++)
m[i][j]=min(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;
}