Cod sursa(job #1645210)

Utilizator zertixMaradin Octavian zertix Data 10 martie 2016 11:33:17
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>
#define inf 100000000000000000LL
using namespace std;

int n,v[505*20];
long long dp[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("%d",&v[i]);
    for (int i=1;i<n;++i)
        dp[i][i+1]=v[i-1]*v[i]*v[i+1];
    for (int m=2;m<=n-1;++m)
        for (int i=1;i<=n-m;++i)
        {
            int j=i+m;
            dp[i][j]=inf;
            for (int k=i;k<j;++k)
                dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+v[i-1]*v[k]*v[j]);
        }
    printf("%lld",dp[1][n]);
    return 0;
}