Cod sursa(job #2205360)

Utilizator Andrei1998Andrei Constantinescu Andrei1998 Data 18 mai 2018 21:30:23
Problema Parantezare optima de matrici Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>

using namespace std;

typedef long long int lint;

lint DEI(const vector <int> &v, int i, int j) {
    if (j - i < 3)
        return 0;

    pair <int, int> minimum(v[i + 1], i + 1);
    for (int k = i + 2; k < j - 1; ++ k)
        minimum = min(minimum, {v[k], k});
    int k = minimum.second;

    return DEI(v, i, k + 1) + DEI(v, k, j) + 1LL * v[i] * v[k] * v[j - 1];
}

lint solve(const vector <int> &v) {
    return DEI(v, 0, v.size());
}

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

    int N;
    cin >> N;
    vector <int> v(N + 1);
    for (int i = 0; i <= N; ++ i)
        cin >> v[i];
    cout << solve(v) << endl;
    return 0;
}