Cod sursa(job #3364277)

Utilizator Dariuscriss72Popescu Darius Mihai Dariuscriss72 Data 1 septembrie 2026 10:45:09
Problema Parantezare optima de matrici Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.69 kb

#include <bits/stdc++.h>
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
#define cin f
#define cout g
int dp[505][505],i,j,k,n,m,a[505];
signed main()
{
    cin>>n;
    for(i=0;i<=n;i++){
        cin>>a[i];
    }
    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
            dp[i][j]=INT_MAX;
        }
    }
    for(i=1;i<=n;i++){
        dp[i][i]=0;
    }
    for(i=1;i<=n;i++){
        dp[i][i+1]=a[i]*a[i+1]*a[i-1];
    }
    for(int len=2;len<=n;len++){
        for(i=1;i<=n-len+1;i++){
            j=i+len-1;
            for(k=i;k<=j-1;k++){
                dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+a[i-1]*a[k]*a[j]);
            }
        }
    }
    cout<<dp[1][n];
    return 0;
}