Cod sursa(job #1931840)
| Utilizator | Data | 19 martie 2017 14:47:31 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <fstream>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
unsigned long long matrice[502][502],d[502],n,i,x,k;
int main()
{
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 && i+x <= n; ++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;
}
