Pagini recente » Cod sursa (job #1481566) | Cod sursa (job #1153804) | Rating Gabriel Simpetru (phxro) | Cod sursa (job #1753174) | Cod sursa (job #404250)
Cod sursa(job #404250)
#include <fstream>
using namespace std;
const char* in = "podm.in";
const char* out = "podm.out";
const int NMAX = 505;
const long INF = 2000000000;
long M[NMAX][NMAX];
long P[NMAX];
int N;
int main ( void )
{
freopen ( in, "r", stdin );
freopen ( out, "w", stdout );
scanf ( "%d", &N );
int i, l, k, j;
for ( i = 0; i <= N; scanf ( "%ld", P+i++ ) );
for ( i = 1; i <= N; ++i ) M[i][i] = 0;
for ( l = 2; l <= N; ++l )
{
for ( i = 1; i <= N-l+1; ++i )
{
j = i+l-1;
M[i][j] = INF;
for ( k = i; k <= j-1; ++k )
{
long Q = M[i][j];
Q -= M[i][k] + M[k+1][j] + P[i-1] * P[k] * P[j];
if ( Q > 0 )
M[i][j] = M[i][k] + M[k+1][j] + P[i-1] * P[k] * P[j];
}
}
}
printf ( "%ld\n", M[1][N] );
return 0;
}