Pagini recente » Cod sursa (job #586981) | Cod sursa (job #241228) | Monitorul de evaluare | Cod sursa (job #1840140) | Cod sursa (job #3320043)
#include<fstream>
#define INF 1000000000
using namespace std;
ifstream cin("podm.in");
ofstream cout("podm.out");
int n,d[600];
long long mat[600][600];
int main()
{
cin>>n;
for(int i=0;i<=n;i++){
cin>>d[i];
}
for(int i=1;i<=n;i++)
mat[i][i]=0;
for(int i=1;i<=n-1;i++)
mat[i][i+1]=d[i-1]*d[i]*d[i+1];
for(int w=2;w<n;w++){
for(int i=1;i<=n-w;i++){
int j=i+w;
mat[i][j]=INF;
for(int k=i;k<j;k++){
if(mat[i][j]>mat[i][k]+mat[k+1][j]+d[i-1]*d[k]*d[j])
mat[i][j]=mat[i][k]+mat[k+1][j]+d[i-1]*d[k]*d[j];
}
}
}
cout<<mat[1][n];
return 0;
}