Pagini recente » Cod sursa (job #728868) | Cod sursa (job #1417437) | Cod sursa (job #2137190) | Cod sursa (job #2669185) | Cod sursa (job #1100261)
#include <fstream>
using namespace std;
ifstream cin("podm.in");
ofstream cout("podm.out");
int n,d[501];long long nrmin[501][501];
void read();
void solve();
int main()
{
read();
solve();
cout<<nrmin[1][n]<<'\n';
cin.close();cout.close();
return 0;
}
void read()
{
cin>>n;
for (int i=0;i<=n;i++)
cin>>d[i];
}
void solve()
{
for (int i=1;i<n;i++)
nrmin[i][i+1]=(long long)d[i-1]*d[i]*d[i+1];
for (int lg=3;lg<=n;lg++)
for (int i=1;i<=n-lg+1;i++)
{
int j=i+lg-1;nrmin[i][j]=1000000000000000ll;
for (int k=i;k<j;k++)
if (nrmin[i][j]>nrmin[i][k]+nrmin[k+1][j]+(long long)d[i-1]*d[k]*d[j])
nrmin[i][j]=nrmin[i][k]+nrmin[k+1][j]+(long long) d[i-1]*d[k]*d[j],nrmin[j][i]=k;
}
}