Cod sursa(job #1739866)

Utilizator vladdy47Bucur Vlad Andrei vladdy47 Data 10 august 2016 13:45:54
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
# include <bits/stdc++.h>

using namespace std;

const int Nmax = 500 + 5;

int n, i, dist, k;
long long a[Nmax], d[Nmax][Nmax];

int main ()
{
    freopen("podm.in", "r", stdin);
    freopen("podm.out", "w", stdout);

    scanf("%d ", &n);

    for (i = 0; i <= n; ++i)
        scanf("%d ", &a[i]);

    for (dist = 1; dist <= n; ++dist)
        for (i = 1; i <= n - dist; ++i){
            d[i][i + dist] = LLONG_MAX;
            for (k = i; k < i + dist; ++k)
                d[i][i + dist] = min (d[i][i + dist], d[i][k] + d[k + 1][i + dist] + a[i - 1] * a[k] * a[i + dist]);

        }

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

    return 0;
}