Cod sursa(job #3182874)

Utilizator Radu_MocanasuMocanasu Radu Radu_Mocanasu Data 10 decembrie 2023 00:07:11
Problema Parantezare optima de matrici Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
const long long inf = 1e18;
int d[505];
long long dp[505][505];
int main()
{
    int n,i,j,e,k;
    fin >> n;
    fin >> d[0] >> d[1];
    for(i = 2; i <= n; i++){
        fin >> d[i];
        dp[i - 1][i] = d[i - 2] * d[i - 1] * d[i];
    }
    for(e = 2; e < n; e++){
        for(i = 1; i <= n - e; i++){
            dp[i][i + e] = inf;
            for(k = i; k < i + e; k++)
                dp[i][i + e] = min(dp[i][i + e], dp[i][k] + dp[k + 1][i + e] + 1LL * d[i - 1] * d[k] * d[i + e]);
        }
    }
    fout << dp[1][n];
    return 0;
}