Cod sursa(job #3164734)
| Utilizator | Data | 4 noiembrie 2023 10:47:27 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <bits/stdc++.h>
#define NMAX 403
using namespace std;
long long N,dp[NMAX][NMAX],d[NMAX];
int main()
{
cin>>N;
for(int i=0; i<=N; i++)
cin>>d[i];
for(int lg=2; lg<=N; lg++)
for(int i=1; i<=N-lg+1; i++)
{
dp[i][i+lg-1]=LLONG_MAX;
for(int k=i; k<=i+lg-1; k++)
dp[i][i+lg-1]=min(dp[i][i+lg-1],dp[i][k]+dp[k+1][i+lg-1]+d[i-1]*d[i+lg-1]*d[k]);
}
cout<<dp[1][N];
return 0;
}
