Pagini recente » Cod sursa (job #1802394) | Cod sursa (job #465878) | Cod sursa (job #837792) | Cod sursa (job #1457028) | Cod sursa (job #1513782)
# 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("%I64d",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("%I64d",m[1][n]);
fclose(stdin);
fclose(stdout);
return 0;
}