Pagini recente » Cod sursa (job #1617470) | Cod sursa (job #3164329) | Cod sursa (job #907800) | Cod sursa (job #654682) | Cod sursa (job #410088)
Cod sursa(job #410088)
#include <algorithm>
using namespace std;
typedef int int_32;
typedef long long int int_64;
#define INF 0x3f3f3f3f
#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 ] );
memset( sol, INF, sizeof( sol ) );
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;
}