Pagini recente » Cod sursa (job #1788639) | Cod sursa (job #2783746) | Cod sursa (job #173861) | Cod sursa (job #1467743) | Cod sursa (job #2314239)
#include <iostream>
#include<fstream>
#include<climits>
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
const long long MAX=LLONG_MAX;
int n,d[501];
long long mat[501][501];
long long nrop(int *p, int n)
{
for(int i=1;i<=n;i++)
mat[i][i]=0;
for(int i=1;i<n;i++)
mat[i][i+1]=1LL*d[i-1]*d[i]*d[i+1];
for(int lg=2;lg<n;lg++)
for(int i=1;i<=n-lg;i++)
{
int ind=lg+i;
mat[i][ind]=MAX;
for(int j=i;j<ind;j++)
mat[i][ind]=min(mat[i][ind], mat[i][j]+mat[j+1][ind]+d[i-1]*d[j]*d[ind]);
}
return mat[1][n];
}
int main()
{
f>>n;
for(int i=0;i<=n;i++)
f>>d[i];
g<<nrop(d,n);
return 0;
}