Pagini recente » Cod sursa (job #1064840) | Cod sursa (job #2695540) | Cod sursa (job #164067) | Cod sursa (job #1359897) | Cod sursa (job #1384098)
#include <fstream>
#define NMX 1000000000000000
#define MX 501
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int n, d[MX];
long long M[MX][MX];
int main()
{
int i,k,nr;
long long minim;
fin>>n;
fin>>d[0];
for(i=1; i<=n; i++) fin>>d[i];
for(i=1; i<n; i++)
{
M[i][i+1] = d[i-1]*d[i]*d[i+1];
}
for(nr=2; nr<n; nr++)
{
for(i=1; i+nr-1<=n; i++)
{
minim = NMX;
for(k=i; k<i+nr; k++)
{
if(M[i][k] + M[k+1][i+nr] + d[i-1]*d[k]*d[i+nr] < minim)
{
minim = M[i][k] + M[k+1][i+nr] + d[i-1]*d[k]*d[i+nr];
}
}
M[i][i+nr] = minim;
}
}
fout<<M[1][n];
fin.close(); fout.close();
return 0;
}