Cod sursa(job #2758698)

Utilizator VladPislaruPislaru Vlad Rares VladPislaru Data 12 iunie 2021 09:55:06
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>

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

int main()
{
    int i , j , k;
    long long m;
    fin >> n;
    for (i = 0; i <= n; i++)
        fin >> a[i];
    for (i = 1; i < n; i++)
        dp[i][i + 1] = a[i - 1] * a[i] * a[i + 1];
    for (i = n - 1; i >= 1; i--)
        for (j = i + 2; j <= n; j++)
        {
            m = 1LL << 60;
            for (k = i; k <= j - 1; k++)
                m = min (m , dp[i][k] + dp[k + 1][j] + a[i - 1] * a[k] * a[j]);
            dp[i][j] = m;
        }
    fout << dp[1][n] << " ";
    return 0;
}