Pagini recente » Cod sursa (job #682512) | Cod sursa (job #2371563) | Cod sursa (job #90941) | Cod sursa (job #583993) | Cod sursa (job #1499671)
#include <cstdio>
#include <climits>
#include <algorithm>
using namespace std;
#define Nmax 502
FILE *f = fopen ( "podm.in", "r" );
FILE *g = fopen ( "podm.out", "w" );
long long D[Nmax][Nmax], v[Nmax];
const long long inf = /*1000000000000000000;*/ LONG_LONG_MAX;
int main(){
int N;
fscanf ( f, "%d", &N );
for ( int i = 0; i <= N; ++i )
fscanf ( f, "%lld", &v[i] );
for ( int i = 1; i < N; ++i )
D[i][i+1] = v[i-1] * v[i] * v[i+1];
for ( int i = 2; i < N; ++i ){
for ( int j = 1; j <= N - i; ++j ){
int d = i+j;
D[j][d] = inf;
for ( int k = j; k < d; ++k ){
D[j][d] = min ( D[j][d], D[j][k] + D[k+1][d] + v[j-1] * v[k] * v[d] );
}
}
}
fprintf ( g, "%lld", D[1][N] );
return 0;
}