Cod sursa(job #1325652)

Utilizator gedicaAlpaca Gedit gedica Data 24 ianuarie 2015 11:26:32
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#include <algorithm>

const int NMAX= 500;
const long long inf= 25000000000000;

using namespace std;

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

int a[NMAX+1];
long long d[NMAX+1][NMAX+1];

int main(  )
{
    int N;
    in >> N;

    for( int i= 0; i<=N; ++i )
    {
        in >> a[i];
    }

    for( int l= 2; l<=N; ++l )
    {
        for( int i= 1; i<=N-l+1; ++i )
        {
            int j= i+l-1;
            d[i][j]= inf;

            for( int k= i; k<j; ++k )
            {
                d[i][j]= min( d[i][j], d[i][k] + d[k+1][j] + a[i-1] * a[k] * a[j] );
            }
        }
    }

    out << d[1][N];

    return 0;
}