Pagini recente » Cod sursa (job #2065536) | Cod sursa (job #1121557) | Cod sursa (job #1601223) | Cod sursa (job #2302192) | Cod sursa (job #410092)
Cod sursa(job #410092)
#include <algorithm>
using namespace std;
typedef int int_32;
typedef long long int int_64;
#define INF 1LL<<60
#define MAX_N 505
int_32 N;
int_32 dim[ MAX_N ];
int_64 sol[ MAX_N ][ MAX_N ];
int main() {
freopen( "podm.in", "r", stdin );
freopen( "podm.out", "w", stdout );
int_32 i, j, k, x, y;
scanf( "%d", &N );
for( i = 0; i <= N; ++i )
scanf( "%d", &dim[ i ] );
for( i = 0; i <= N; ++i )
for( j = 0; j <= N; ++j )
sol[ i ][ j ] = INF;
for( i = 1; i <= N; ++i ) {
sol[ i ][ i ] = 0;
sol[ i ][ i+1 ] = (int_64)dim[ i-1 ] * dim[ i ] * dim[ i+1 ];
}
for( j = 3; j <= N; ++j )
for( x = 1, y = j; x <= N && y <= N; ++x, ++y )
for( k = x; k < y; ++k )
sol[ x ][ y ] = min( sol[ x ][ y ], sol[ x ][ k ] + sol[ k+1 ][ j ] + (int_64)dim[ x-1 ] * dim[ k ] * dim[ j ] );
printf( "%lld", sol[ 1 ][ N ] );
return 0;
}