Cod sursa(job #1293010)
Utilizator | Mihnea MihneaGhira | Data | 15 decembrie 2014 10:02:53 |
---|---|---|---|
Problema | Parantezare optima de matrici | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.56 kb |
#include<fstream>
#define INF 2000000000
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int n,l,i,j,k;
long long v[501],D[501][501];
int main(){
fin>>n;
n++;
for(i=1;i<=n;i++)
fin>>v[i];
for(l=2;l<=n-1;l++){
for(i=1;i+l<=n;i++){
j=i+l;
D[i][j]=INF;
for(k=i+1;k<=j-1;k++){
if(D[i][j]>D[i][k]+D[k][j]+v[i]*v[k]*v[j])
D[i][j]=D[i][k]+D[k][j]+v[i]*v[k]*v[j];
}
}
}
fout<<D[1][n];
return 0;
}