Cod sursa(job #1714172)

Utilizator zertixMaradin Octavian zertix Data 7 iunie 2016 18:25:47
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <cstdio>
#define inf 199999999999997
using namespace std;

int n;
long long v[505];
long long mat[505][505];
int main()
{
    freopen("podm.in","r",stdin);
    freopen("podm.out","w",stdout);
    scanf("%d",&n);
    for (int i=0;i<=n;++i)
        scanf("%lld",&v[i]);
    for (int i=1;i<n;++i)
        mat[i][i+1]=v[i-1]*v[i]*v[i+1];
    for (int k=2;k<=n;++k)
    {
        for (int i=1;i+k<=n;++i)
        {
            mat[i][i+k]=inf;
            for (int d=i;d<=i+k;d++)
                mat[i][i+k]=min(mat[i][i+k],mat[i][d]+mat[d+1][i+k]+v[i-1]*v[d]*v[i+k]);
        }
    }
    printf("%lld",mat[1][n]);
    return 0;
}