Cod sursa(job #2879210)

Utilizator cyg_dawidDavid Ghiberdic cyg_dawid Data 28 martie 2022 12:18:26
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream>

std::ifstream fin("podm.in");
std::ofstream fout("podm.out");

typedef long long ll;

int const nmax = 500;
ll const inf = (ll)1e18;

ll d[nmax + 5];
ll dp[nmax + 5][nmax + 5];

int main()
{
    int n;
    fin >> n;
    for (int i = 0; i <= n; i++)
        fin >> d[i];
    for (int dist = 1; dist < n; dist++) {
        for (int i = 1; i <= n - dist; i++) {
            int j = i + dist;
            dp[i][j] = inf;
            for (int k = i; k < j; k++)
                dp[i][j] = std::min(dp[i][j], dp[i][k] + dp[k + 1][j] + d[i - 1] * d[k] * d[j]);
        }
    }
    fout << dp[1][n];
    return 0;
}