Pagini recente » Cod sursa (job #1247254) | Cod sursa (job #2466176) | Cod sursa (job #1764355) | Cod sursa (job #2990896) | Cod sursa (job #1344695)
#include <fstream>
#include <algorithm>
#include <vector>
#define NMAX 505
#define get_max(a,b) ((a)>(b)?(a):(b))
#define get_min(a,b) ((a)<(b)?(a):(b))
using namespace std;
ifstream in ( "podm.in" );
ofstream out ( "podm.out" );
int DP[NMAX][NMAX] , D[NMAX] ;
int N ;
int main ( void ){
int i , j;
in >> N ;
for ( i = 0 ; i <= N ; ++i )
in >> D[i];
for ( int step = 1 ; step < N ; ++step )
for ( i = 1 ; i <= N - step ; ++i ){
j = i + step ;
for ( int k = i + 1 ; k < j ; ++ k )
DP[i][j] = get_min(DP[i][k] + DP[k+1][j] + D[i-1]*D[j]*D[j+1], DP[i][j]);
}
out << DP[1][N];
return 0;
}