Cod sursa(job #1542239)

Utilizator bpalaniciPalanici Bogdan bpalanici Data 5 decembrie 2015 10:40:40
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

const long long oo = 1ll << 60;

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

    for (int step = 1; step < n; step++)
        for (int i = 1; i <= n - step; i++)
        {
            int i1 = i + step;
            inm[i][i1] = oo;
            for (int k = i; k < i1; k++)
                inm[i][i1] = min(inm[i][i1], inm[i][k] + inm[k + 1][i1] + 1ll * d[i-1] * d[i1] * d[k]);
        }

    printf("%lld", inm[1][n]);
    return 0;
}