Cod sursa(job #1315935)
| Utilizator | Data | 13 ianuarie 2015 12:45:40 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include <fstream>
#define NMax 501
#define INF 1LL<<63-1;
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
int n, v[NMax], l, i, j, k;
long long d[NMax][NMax];
int main()
{
f>>n;
for (i=0; i<=n; i++)
f>>v[i];
for (l=2; l<=n; l++) {
for (i=1; i<=n-l+1; i++) {
j=i+l-1;
d[i][j]=INF;
for (k=i; k<j; k++)
d[i][j]=min(d[i][j], d[i][k] + d[k+1][j] + 1LL*v[i-1]*v[k]*v[j]);
}
}
g<<d[1][n];
return 0;
}
