Cod sursa(job #3340212)

Utilizator torjexPetrescu Andrei torjex Data 12 februarie 2026 18:39:09
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <fstream>
#define int long long

using namespace std;

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

const int NMAX = 505;
int dp[NMAX][NMAX];
int arr[NMAX];
const int INF = 1e18;

signed main()
{
    int n;
    fin>>n;
    for (int i=0;i<=n;i++) {
        fin>>arr[i];
    }
    for (int i=1;i<n;i++) {
        dp[i][i+1] = arr[i-1] * arr[i] * arr[i+1];
    }
    for (int lg=3;lg<=n;lg++) {
        for (int l=1;l<=n-lg+1;l++) {
            int r = l + lg - 1;
            dp[l][r] = INF;
            for (int k=l;k<r;k++) {
                dp[l][r] = min(dp[l][r], dp[l][k] + dp[k+1][r] + arr[l-1] * arr[k] * arr[r]);
            }
        }
    }
    fout<<dp[1][n];
    return 0;
}