Cod sursa(job #478582)
Utilizator | Data | 19 august 2010 11:58:51 | |
---|---|---|---|
Problema | Parantezare optima de matrici | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.47 kb |
#include <iostream>
using namespace std;
long long v[510];
long long m[510][510];
int n, i, j, k;
int main()
{
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
cin >> n;
for(i=0;i<=n;++i)
cin >> v[i];
for(i=n;i>=1;--i)
for(j=i+1;j<=n;++j)
{
m[i][j] = (((long long)1) << 63) - 1;
for(k=i;k<j;++k)
m[i][j] = min(m[i][j], m[i][k] + m[k+1][j] + v[i-1] * v[k] * v[j]);
}
cout << m[1][n] << endl;
return 0;
}