Cod sursa(job #3285548)

Utilizator mateilucaLuca Matei Gabriel mateiluca Data 13 martie 2025 10:00:11
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int n, d[505];
long long dp[505][505];

int main()
{
    int i, j, k;
    long long mini;
    fin >> n;
    for(i = 0;i <= n;i++)
        fin >> d[i];
    for(i = 1;i < n;i++)
        dp[i][i + 1] = 1LL * d[i - 1] * d[i] * d[i + 1];
    for(j = 2;j < n;j++)
        for(i = 1;i <= n - j;i++)
        {
            mini = LLONG_MAX;
            for(k = i;k < i + j;k++)
                mini = min(mini, dp[i][k] + dp[k + 1][i + j] + 1LL * d[i - 1] * d[k] * d[i + j]);
            dp[i][i + j] = mini;
        }
    fout << dp[1][n] << "\n";
    fout.close();
    return 0;
}