Pagini recente » Cod sursa (job #400969) | Cod sursa (job #288841) | Cod sursa (job #1768341) | Cod sursa (job #3286063) | Cod sursa (job #1094408)
#include <fstream>
using namespace std;
#define NMAX 505
#define Min(a, b) ((a) < (b) ? (a) : (b))
#define INF 100000000000000000LL
#define IN "podm.in"
#define OUT "podm.out"
long long matrice[NMAX][NMAX],d[NMAX];
int n,i,x,j,k;
int main(void)
{
ifstream fin(IN);
ofstream fout(OUT);
fin>>n;
for(i=0;i<=n;i++)
fin>>d[i];
for(i=1;i<=n;i++)
matrice[i][i] = 0;
for(i=1;i<=n-1;i++)
matrice[i][i + 1]=d[i-1]*d[i]*d[i + 1];
for(x=2;x<=n-1;x++)
for(i=1;i<=n-x;i++)
{
j=i+x;
matrice[i][j]=INF;
for(k=i;k<=j-1;k++)
matrice[i][j]=Min(matrice[i][j],matrice[i][k]+matrice[k + 1][j]+d[i - 1]*d[k]*d[j]);
}
fout<<matrice[1][n];
return 0;
}