Cod sursa(job #1105920)
| Utilizator | Data | 12 februarie 2014 11:24:22 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <fstream>
using namespace std;
ifstream fin ("podm.in");
ofstream fout ("podm.out");
long long d[505][505],minim,x;
long long n,v[505],l,i,j,k;
int main () {
fin>>n;
for (i=1;i<=n+1;i++)
fin>>v[i];
for (l=1;l<n;l++) {
for (i=1;i+l<=n;i++) {
j=i+l;
minim=1000000000000;
for (k=i;k<j;k++) {
x=d[i][k]+d[k+1][j]+v[i]*v[k+1]*v[j+1];
if (x<minim)
minim=x;
}
d[i][j]=minim;
}
}
fout<<d[1][n]<<"\n";
return 0;
}
