Pagini recente » Cod sursa (job #57021) | Cod sursa (job #1647162) | Cod sursa (job #1184695) | Cod sursa (job #2507015) | Cod sursa (job #2680888)
#include <fstream>
#define INF 1e18 + 1
#define MAX 500
using namespace std;
ifstream cin( "podm.in" );
ofstream cout( "podm.out" );
long long dp[ MAX + 1 ][ MAX + 1 ];
int v[ MAX + 1 ];
int main()
{
int n, l, c, k, x, i, j;
cin >> n;
for( i = 0; i <= n; i++ )
cin >> v[ i ];
for( x = 2; x <= n; x++ ){
i = 1;
for( j = x; j <= n; j++ ){
dp[ i ][ j ] = INF;
for( k = i; k < j; k++ ){
long long cat = dp[ i ][ k ] + dp[ k + 1 ][ j ] + ( long long )v[ i - 1 ] * v[ k ] * v[ j ];
if( cat < dp[ i ][ j ] )
dp[ i ][ j ] = cat;
}
++i;
}
}
cout << dp[ 1 ][ n ] << '\n';
return 0;
}