Cod sursa(job #2794330)

Utilizator loraclorac lorac lorac Data 4 noiembrie 2021 17:53:58
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.55 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
typedef long long ll;
const ll inf=3e18+7;
ll dp[505][505];
ll d[505],n;
int main()
{
    in>>n;
    for(ll i=0;i<=n;++i)
        in>>d[i];
    for(ll i=1;i<=n-1;++i)
        dp[i][i+1]=d[i-1]*d[i]*d[i+1];
    for(ll l=2;l<n;++l)
    for(ll i=1;i+l<=n;++i)
    {
        dp[i][i+l]=inf;
        for(ll k=i;k<i+l;++k)
            dp[i][i+l]=min(dp[i][i+l],dp[i][k]+dp[k+1][i+l]+d[i-1]*d[k]*d[i+l]);
    }
    out<<dp[1][n]<<'\n';
    return 0;
}