Pagini recente » Cod sursa (job #1428080) | Cod sursa (job #91245) | Cod sursa (job #1226714) | Cod sursa (job #1639631) | Cod sursa (job #1513784)
# include <stdio.h>
# include <limits.h>
# define MAXN 501
# define MAXIM LLONG_MAX
# define InFile "podm.in"
# define OutFile "podm.out"
long long m[MAXN][MAXN], d[MAXN],x;
int main()
{
freopen(InFile,"r",stdin);
freopen(OutFile,"w",stdout);
int n,i,j,w,k;
scanf("%d",&n);
for( i = 0 ; i <= n ; ++i )
scanf("%lld",d+i);
for( i = 1 ; i <= n ; ++i )
{
m[i][i] = 0;
if( i <= n-1 )
m[i][i + 1] = d[i - 1] * d[i] * d[i + 1];
}
for( w = 2 ; w <= n-1 ; ++w )
for( i = 1 ; i <= n-w ; ++i )
{
j = i + w;
m[i][j] = MAXIM;
for( k = i ; k <= j-1 ; ++k )
{
x = m[i][k] + m[k + 1][j] + d[i - 1] * d[k] * d[j];
if( x < m[i][j] )
m[i][j] = x;
}
}
printf("%lld",m[1][n]);
fclose(stdin);
fclose(stdout);
return 0;
}