Cod sursa(job #1289018)
Utilizator | Data | 9 decembrie 2014 12:59:15 | |
---|---|---|---|
Problema | Parantezare optima de matrici | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.63 kb |
#include<fstream>
#define INF 1000000000000000000
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
long long min(long long a,long long b){
if(a<b){
return a;
}else
return b;
}
int n,i,d,j,k;
long long a[550][550],v[550];
int main(){
fin>>n;
n++;
for(i=1;i<=n;i++){
fin>>v[i];
}
for(d=2;d<=n-1;d++){
for(i=1;i+d<=n;i++){
j=d+i;
a[i][j]=INF;
for(k=i+1;k<j;k++){
a[i][j]=min(a[i][j],a[i][k]+a[k][j]+v[i]*v[k]*v[j]);
}
}
}
fout<<a[1][n];
return 0;
}