Pagini recente » Cod sursa (job #2456990) | Cod sursa (job #1385093) | Cod sursa (job #1163764) | Cod sursa (job #1710778) | Cod sursa (job #2297598)
#define MAXN 500
#define INF 100000000000000000LL
using namespace std;
long long d[1+MAXN+5], p[1+MAXN+5][1+MAXN+5];
inline long long minim( long long a, long long b )
{
if( a>b )
a=b;
return a;
}
int main()
{
freopen( "podm.in", "r", stdin );
freopen( "podm.out", "w", stdout );
int n;
scanf( "%d", &n );
for( int i=0;i<=n;i++ )
scanf( "%d", &d[i] );
for( int i=1;i<=n-1;i++ )
p[i][i+1]=d[i-1]*d[i]*d[i+1];
for( int j=2;j<=n-1;j++ )
for( int i=1;i<=n-j;i++ )
{
p[i][i+j]=INF;
for( int k=i;k<=i+j-1;k++ )
p[i][i+j]=minim(p[i][i+j],p[i][k]+p[k+1][i+j]+d[i-1]*d[k]*d[i+j]);
}
printf( "%lld", p[1][n] );
return 0;
}