Cod sursa(job #2566418)
| Utilizator | Data | 2 martie 2020 21:13:02 | |
|---|---|---|---|
| Problema | Parantezare optima de matrici | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <fstream>
#define INF 2000000000000
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
long long i,l,k,n,v[510],D[510][510];
int main(){
fin>>n;
n++;
for(i=1;i<=n;i++)
fin>>v[i];
for(l=3;l<=n;l++){
for(i=1;i+l-1<=n;i++){
int lung=i+l-1;
D[i][lung]=INF;
for(k=i+1;k<lung;k++)
D[i][lung]=min(D[i][lung],D[i][k]+D[k][lung]+v[i]*v[k]*v[lung]);
}
}
fout<<D[1][n];
return 0;
}
