Cod sursa(job #1221582)
| Utilizator | Data | 20 august 2014 20:01:17 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include<fstream>
#define INF 1LL<<62
using namespace std;
long long n, L[5007], d[5007][5007], pas, i, j, C[5007], k;
ifstream in("podm.in");
ofstream out("podm.out");
int main(){
in>>n;
in>>L[1];
for(i=2; i<=n+1; i++){
in>>C[i-1];
L[i]=C[i-1];
}
for(i=1; i<=n+1; i++){
d[i][i]==0;
}
for(pas=2; pas<=n; pas++){
for(i=1; i+pas-1<=n; i++){
j=i+pas-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]+L[i]*C[k]*C[j]);
}
}
out<<d[1][n];
return 0;
}
