Pagini recente » Cod sursa (job #1351398) | Cod sursa (job #1374597) | Cod sursa (job #2070478) | Cod sursa (job #29446) | Cod sursa (job #1047700)
#include <iostream>
#include <fstream>
#define MAXN 501
#define INF 300000000000000
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;
}