Cod sursa(job #3257096)

Utilizator Dragos__1_1Dragos Antohi Dragos__1_1 Data 16 noiembrie 2024 16:48:16
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.64 kb
#include <bits/stdc++.h>
#define INF 10000000000000000LL
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
long long n,a[503],i,j,k,dp[503][503];
int main()
{   f>>n;
    for (i=1;i<=n+1;i++){
        f>>a[i];
    }
    //dp[i][i]=0
    for (i=2;i<=n;i++){
        dp[i-1][i]=1ll*a[i-1]*a[i]*a[i+1];
    }
    for (i=n;i>0;i--){
        for (j=2;i+j<=n;j++){
                dp[i][i+j]=INF;
            for (k=i;k<=i+j;k++){
                dp[i][i+j]=min(dp[i][i+j],
                    1ll*dp[i][k]+dp[k+1][i+j]+1ll*a[i]*a[k+1]*a[i+j+1]);
            }
        }
    }
    g<<dp[1][n]<<'\n';
    return 0;
}