Cod sursa(job #2114946)
| Utilizator | Data | 26 ianuarie 2018 09:18:04 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include<fstream>
#define inf 2e18
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
long long n, a[505], d[505][505];
int main()
{
f>>n;
for(int i=1;i<=n+1;i++)
f>>a[i];
/*for(int i=1;i<=n;i++)
d[i][i+1]=0;*/
for(int l=3;l<=n+1;l++)
for(int i=1;i+l-1<=n+1;i++)
{
int j=i+l-1;
d[i][j]=inf;
for(int k=i+1;k<j;k++)
d[i][j]=min(d[i][j], d[i][k]+d[k][j]+a[i]*a[k]*a[j]);
}
g<<d[1][n+1];
return 0;
}
