Pagini recente » Cod sursa (job #525808) | Cod sursa (job #2822273) | Cod sursa (job #111002) | Cod sursa (job #387203) | Cod sursa (job #525797)
Cod sursa(job #525797)
#include<fstream>
using namespace std;
#define NMAX 500
#define INF 100000000000000000LL
int main(void)
{
int n, i, j, k, l;
int d[NMAX+1];
long long** M = NULL;
long long q;
ifstream f("podm.in");
ofstream g("podm.out");
f >> n;
for (i=0;i<=n;i++)
{
f>>d[i];
}
f.close();
M = new long long* [n+1];
for (i=1;i<=n;i++)
{
M[i] = new long long [n+1];
M[i][i] = 0;
}
for (l=2;l<=n;l++)
{
for (i=1;i<=n-l+1;i++)
{
j = i+l-1;
M[i][j] = M[i][i] + M[i+1][j] + d[i-1]*d[i]*d[j];
for (k=i+1;k<j;k++)
{
q = M[i][k]+M[k+1][j]+d[i-1]*d[k]*d[j];
if (q < M[i][j])
{
M[i][j] = q;
}
}
}
}
g<<M[1][n]<<'\n';
g.close();
for (i=1;i<=n;++i)
{
delete[] M[i];
}
delete[] M;
return 0;
}