Pagini recente » Cod sursa (job #2482542) | Cod sursa (job #221046) | Cod sursa (job #1960976) | Cod sursa (job #1639502) | Cod sursa (job #1047676)
#include <iostream>
#include <fstream>
#define MAXN 501
#define INF 30000000000
using namespace std;
ifstream f("podm.in");
ofstream g("podm.out");
int n;
long long Mat[MAXN][MAXN];
long long A[MAXN];
long long inmultire(long long a, long long b, long long c){
return a*b*c;
}
int main()
{
int i,j,k,d;
f >> n;
for(i=0;i<=n;i++){
f >> A[i];
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
Mat[i][j] = INF;
for(i=1;i<=n;i++)
Mat[i][i] = 0;
for(i=1;i<n;i++)
Mat[i][i+1] = inmultire(A[i-1],A[i],A[i+1]);
for(d=2;d<n;d++)
for(i=1;i<=n-d;i++){
for(k=i;k<i+d;k++)
Mat[i][i+d] = min(Mat[i][i+d],(Mat[i][k]+Mat[k+1][i+d]+inmultire(A[i-1],A[k],A[i+d])));
}
g << Mat[1][n];
return 0;
}