Pagini recente » Cod sursa (job #3202536) | Cod sursa (job #73391) | Cod sursa (job #2372528) | Cod sursa (job #969641) | Cod sursa (job #2858683)
#include <fstream>
using namespace std;
ifstream cin("podm.in");
ofstream cout("podm.out");
long long d[600];
long long m[600][600];
int n;
int main()
{
cin>>n;
for(int i=0; i<=n; ++i)
{
cin>>d[i];
m[i][i]=0;
}
for(int i=1; i<n; ++i)
m[i][i+1]=1ll*d[i-1]*d[i]*d[i+1];
for(int dist=2; dist<n; ++dist)
for(int i=1; i+dist<=n; ++i)
{
int j=i+dist;
long long mn=0;
///i,i+d
for(int k=i; k<j; ++k)
if(k==i)
mn=m[i+1][j]+
1ll*d[i-1]*d[i]*d[j];
else
mn=min(mn,1ll*(m[i][k]+m[k+1][j]+
1ll*d[i-1]*d[k]*d[j]));
m[i][j]=mn;
}
cout<<m[1][n]<<'\n';
return 0;
}