Cod sursa(job #1906414)
| Utilizator | Data | 6 martie 2017 13:53:56 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <fstream>
#define Ndim 502
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
long long D[Ndim][Ndim],V[Ndim];
int main()
{
int i,n,j,k,l,d;
fin>>n;
for(i=0;i<=n;i++)
{
fin>>V[i];
}
for(i=1;i<n;i++)
D[i][i+1] = V[i-1]*V[i]*V[i+1];
for(d=2;d<n;d++)
{
for(i=1;i+d<=n;i++)
{
j = i+d;
D[i][j] = D[i][j-1] + V[i-1]*V[j-1]*V[j];
for(k=i;k<j;k++)
{
D[i][j] = min(D[i][j],D[i][k]+D[k+1][j]+V[i-1]*V[k]*V[j]);
}
}
}
fout<<D[1][n];
return 0;
}
