Cod sursa(job #2579636)
| Utilizator | Data | 12 martie 2020 18:10:55 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <bits/stdc++.h>
#define inf 2000000000
#define N 505
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int a[N];
int dp[N][N];
int main()
{
int n,i,j,diag,k;
fin>>n;
for(i=1;i<=n;++i)
fin>>a[i];
for(diag=2;diag<=n;++diag)
for(i=1,j=diag;j<=n;i++,j++)
{
dp[i][j]=inf;
for(k=i;k<j;++k)
dp[i][j]=min(dp[i][j],dp[i][k]+dp[k+1][j]+a[i-1]*a[k]*a[j]);
//cout<<dp[i][j]<<" ";
}
fout<<dp[1][n];
return 0;
}
