Cod sursa(job #1236296)

Utilizator Alexghita96Ghita Alexandru Alexghita96 Data 1 octombrie 2014 19:29:05
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <cstdio>
#include <algorithm>

#define NMAX 505

using namespace std;

int n;
long long d[NMAX], dp[NMAX][NMAX];

void citire()
{
    scanf("%d", &n);

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

void rezolvare()
{
    for (int l = 2; l <= n; ++l)
        for (int i = 1, j = l; j <= n; ++i, ++j)
        {
            dp[i][j] = ((long long)1 << 62);
            for (int k = i; k <= j; ++k)
                dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] + d[i - 1] * d[j] * d[k]);
        }
    printf("%lld", dp[1][n]);
}

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

    citire();
    rezolvare();

    return 0;
}