Cod sursa(job #2565492)

Utilizator StarGold2Emanuel Nrx StarGold2 Data 2 martie 2020 14:26:28
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.57 kb
#include <bits/stdc++.h>
using namespace std;

const int DIM = 505;

long long val[DIM], dp[DIM][DIM];

int main(void) {
    freopen("podm.in", "r", stdin);
    freopen("podm.out", "w", stdout);
    int n; cin >> n; ++n;
    for (int i = 1; i <= n; ++i)
        cin >> val[i];
    for (int i = n - 2; i >= 1; --i)
    for (int j = i + 2; j <= n; ++j) {
        dp[i][j] = (1LL << 60);
        for (int k = i + 1; k < j; ++k)
            dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j] + val[i] * val[k] * val[j]);
    }
    cout << dp[1][n] << endl;
    return 0;
}