Cod sursa(job #1150019)

Utilizator PatrikStepan Patrik Patrik Data 22 martie 2014 15:08:50
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
    #include<cstdio>
    #include<iostream>
    using namespace std;
    #define NMAX 501
    #define INF 1ll*500000000000000
    int N  , d[NMAX];
    long long m[NMAX][NMAX] ;


    int main()
    {
        freopen("podm.in" , "r" , stdin );
        freopen("podm.out" , "w" , stdout );
        scanf("%d" , &N );
        for(int i = 0 ; i <= N ; ++i )
            scanf("%d" , &d[i]);
        for(int l = 2 ; l <= N ; ++l )
            for(int i = 1 ; l+i-1 <= N ; ++i )
        {
            int j = l+i-1;
            m[i][j] =INF;
            for(int k = i ; k < j ; ++k )
                m[i][j] = min(m[i][j] , m[i][k] + m[k+1][j] + 1ll*d[i-1]*d[k]*d[j]);
        }
        cout<<m[1][N];
        return 0;
    }