Cod sursa(job #2738261)

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