Cod sursa(job #3322313)

Utilizator winemomComan Erin winemom Data 13 noiembrie 2025 13:48:40
Problema Parantezare optima de matrici Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
const long long MOD = 666013, nMax = 1000, INF = 2e9;

long long dim[505], dp[505][505];

int main()
{
    int n;
    f >> n;
    for(int i=1; i<=n+1; i++)
        f >> 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++)
        dp[i][i+1] = 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]);
        }
    }
    g << dp[1][n];
}