Cod sursa(job #1231321)

Utilizator afkidStancioiu Nicu Razvan afkid Data 20 septembrie 2014 12:02:35
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <cstdio>
#define DIMN 504
#define INF 100000000000000000LL

using namespace std;
int n; long long v[DIMN],m[DIMN][DIMN];

inline long long MIN(long long a,long long b)
{
    return ((a>b)? b : a);
}

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