Cod sursa(job #3152080)

Utilizator TeddyDinutaDinuta Eduard Stefan TeddyDinuta Data 23 septembrie 2023 18:19:18
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
long long n, d[505][505], v[505];

int main()
{
    in >> n;
    for (int i = 1; i <= n + 1; i++)
        in >> v[i];

    for (int i = 1; i <= n - 1; i++) {
        d[i][i + 1] = v[i] * v[i + 1] * v[i + 2];
    }

    for (int l = 2; l < n; l++) {
        for (int j = 1; j <= n - l; j++) {
            d[j][j + l] = 1e18;
            for (int k = j; k < j + l; k++)
                d[j][j + l] = min(d[j][j + l], d[j][k] + d[k + 1][j + l] + v[j] * v[k + 1] * v[j + l + 1]);
        }
    }

    out << d[1][n] << '\n';
    return 0;
}