Cod sursa(job #2232431)
| Utilizator | Data | 19 august 2018 03:26:19 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.47 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
long long n,i,j,k,nr,l,M[505][505];
int d[505];
int main () {
fin>>n;
for(i=1;i<=n+1;i++)
fin>>d[i];
for(k=2;k<=n;k++)
for(i=1;i<=n-k+1;i++)
{
l=i+k-1;
M[i][l]=M[i][i]+M[i+1][l]+d[i]*d[i+1]*d[l+1];
for(j=i+1;j<l;j++)
{
nr=M[i][j]+M[j+1][l]+d[i]*d[j+1]*d[l+1];
if(nr<M[i][l])
M[i][l]=nr;
}
}
fout<<M[1][n]<<"\n";
}
