Cod sursa(job #1931799)
| Utilizator | Data | 19 martie 2017 14:38:33 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
unsigned long long matrice[501][501],d[501];
int main()
{
short n,i,x,k;
fin>>n;
for(i=0; i<=n; ++i) fin>>d[i];
for(i=1; i<n; ++i)
matrice[i][i+1]=d[i-1]*d[i]*d[i+1];
for(x=2; x<n; ++x)
for(i=1; i<=n-x; ++i)
{
matrice[i][i+x]=100000000000000000LL;
for(k=1; k<i+x; ++k)
matrice[i][i+x]=min(matrice[i][i+x],matrice[i][k]+matrice[k+1][i+x]+d[i-1]*d[k]*d[i+x]);
}
fout<<matrice[1][n];
return 0;
}
