Cod sursa(job #2227758)

Utilizator cristina-criCristina cristina-cri Data 1 august 2018 17:38:52
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <cstdio>

using namespace std;

int n;
long long d[505], 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("%lld", &d[i]);
    }

    for(int diag=1; diag<=n; diag++)
    {
        for(int i=1; i<=n-diag; i++)
        {
            long long vmax=(1LL<<60);
            int j=i+diag;
            for(int k=i+1; k<=j; k++)
            {
                long long sum=dp[i][k-1]+dp[k][j]+d[i-1]*d[k-1]*d[j];
                if(sum<vmax)
                    vmax=sum;
            }
            dp[i][j]=vmax;
        }
    }

    printf("%lld", dp[1][n]);

    return 0;
}