Pagini recente » Cod sursa (job #341457) | Cod sursa (job #707045) | Cod sursa (job #2959087) | Cod sursa (job #2144745) | Cod sursa (job #2031145)
#include <cstdio>
const int MAX_N=500;
long long v[MAX_N+1];
long long Solve[MAX_N+1][MAX_N+1];
inline long long my_min( long long a, long long b )
{
if( a>b )
a=b;
return a;
}
long long solve( int st, int dr )
{
if( Solve[st][dr]==0 )
{
if( st+1==dr )
{
Solve[st][dr]=0;
}
else
{
long long op=1LL<<62;
for( int i=st+1;i<dr;i++ )
op=my_min(op,v[st]*v[i]*v[dr]+solve(st,i)+solve(i,dr));
Solve[st][dr]=op;
}
}
return Solve[st][dr];
}
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( "%lld", &v[i] );
long long answer=solve(0,n);
printf( "%lld", answer );
return 0;
}