Cod sursa(job #1325644)

Utilizator felixiPuscasu Felix felixi Data 24 ianuarie 2015 11:23:47
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>

using namespace std;

ifstream in("podm.in");
ofstream out("podm.out");

typedef long long I64;

const I64 INF  = 2500000000000;
const int NMAX = 500;

I64 d[NMAX+2][NMAX+1], a[NMAX+2];
int N;

int main()
{
    in >> N;
    for( int i = 0;  i <= N;  ++i ) {
        in >> a[i];
        d[i][i] = 0;
    }
    for( int l = 2;  l <= N;  ++l ) {
        for( int i = 1;  i <= N-l+1;  ++i ) {
            I64 j = i+l-1, myn = INF;
            for( int k = i;  k < j;  ++k )
                myn = min( myn , d[i][k]+d[k+1][j] + a[i-1]*a[k]*a[j] );
            d[i][j] = myn;
        }
    }
    out << d[1][N] << '\n';
    return 0;
}