Pagini recente » Cod sursa (job #1623715) | Cod sursa (job #892883) | Cod sursa (job #1782471) | Cod sursa (job #974757) | Cod sursa (job #814847)
Cod sursa(job #814847)
#include<cstdio>
#define NMAX 505
#define INF 1000000000000LL
long long d[NMAX],n,m[NMAX][NMAX];
inline long long minim (long long a ,long long b)
{
return a<b ? a : b ;
}
void citire()
{
scanf("%d",&n);
for(int i=0 ;i <=n ; ++i)
{
scanf("%d",&d[i]);
}
}
void solve()
{
for(int i=1 ;i<=n;++i)
m[ i ][ i ] = 0;
for(int i=1 ;i<n;++i)
m[i][i+1]=d[i-1]*d[i]*d[i+1];
for(int j = 2 ; j < n ; ++j)
for(int i= 1 ; i <= n-j ; ++i)
{
long long x=i+j;
m[i][x]= INF ;
for(int k = i ; k < x; ++k )
m[i][x]= minim (m[i][x] , m[i][k] + m[k+1][x] + d[i-1]*d[k]*d[x]);
}
}
int main()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
citire();
solve();
printf("%lld",m[1][n]);
return 0;
}