Cod sursa(job #2878965)
| Utilizator | Data | 28 martie 2022 10:50:44 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.62 kb |
#include <iostream>
using namespace std;
const int N=505;
long long v[N], d[N][N];
int main ()
{
long long n, r=0;
cin >> n;
for (int i=1; i<=n; i++)
{
cin >> v[i];
}
for (int i=1; i<n; i++)
{
d[i][i+1]=v[i-1]*v[i]*v[i+1];
}
for (int i=n-1; i>=1; i--)
{
for (int j=i+2; j<=n; j++)
{
r=(1LL<<60);
for (int k=1; k<=j-1; k++)
{
r=min(r, d[i][k]+d[k+1][j]+v[i-1]*v[k]*v[j]);
}
d[i][j]=r;
}
}
cout << d[1][n] << "\n";
return 0;
}
