Cod sursa(job #3148735)

Utilizator Maftei_TudorMaftei Tudor Maftei_Tudor Data 3 septembrie 2023 21:24:13
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>

using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
typedef long long ll;
const ll inf = 1000000000000000;

ll n, v[505], dp[505][505];

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

    for(int i=1; i<n-1; i++) {
        dp[i][i+2] = v[i] * v[i+1] * v[i+2];
    }
    for(int lg=3; lg<=n; lg++)
        for(int i=1; i+lg-1<=n; i++) {
            int j = i + lg - 1;
            dp[i][j] = inf;

            for(int k=i+1; k<=j; k++)
                dp[i][j] = min(dp[i][j], v[i] * v[k] * v[j] + dp[i][k] + dp[k][j]);
        }

    out << dp[1][n];
    return 0;
}