Cod sursa(job #3322311)

Utilizator winemomComan Erin winemom Data 13 noiembrie 2025 13:45:16
Problema Parantezare optima de matrici Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>
using namespace std;
const int MOD = 666013, nMax = 1000, INF = 2e9;

int dim[505], dp[505][505];

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

    for(int i=1; i<=n; i++)
        for(int j = i+1; j<=n; j++)
            dp[i][j] = INF;

    for(int i=1; i<=n; i++)
        for(int j=i+1; j<=n; j++)
            dp[i][j] = dim[i] * dim[i+1] * dim[i+2];

    for(int len = 3; len<=n; len++)
    {
        for(int dr = len; dr<=n; dr++)
        {
            int st = dr - len + 1;
            for(int k=st; k<dr; k++)
                dp[st][dr] = min(dp[st][dr], dp[st][k] + dp[k+1][dr] + dim[st] * dim[k+1] * dim[dr+1]);
        }
    }
    cout << dp[1][n];
}