Pagini recente » Cod sursa (job #2358489) | Cod sursa (job #3177488) | Cod sursa (job #2560629) | Cod sursa (job #499948) | Cod sursa (job #1074140)
#include <iostream>
#include <fstream>
#include <cmath>
#define maxn 573
#define infinit pow(2,31)
#define ll long long
using namespace std;
ll mat[maxn][maxn];
ll minim(ll a, ll b)
{
if (a<b) return a;
return b;
}
int main()
{
int n, k,i,j;
int vect[maxn];
ifstream in("podm.in");
ofstream out("podm.out");
in>>n;
for(i=0;i<=n;i++)
in>>vect[i];
for (i=1;i<=n;i++)
for (j=i+2;j<=n;j++)
mat[i][j]=infinit;
for (i=1;i<=n;i++)
mat[i][i]=0;
for ( i=1;i<n;i++)
mat[i][i+1]=vect[i-1]*vect[i]*vect[i+1];
for (int l=2;l<n;l++)
for (i=1;i+l<=n;i++)
{
j=i+l;
for (k=i;k<j;k++)
mat[i][j]=minim(mat[i][j], mat[i][k]+mat[k+1][j]+ vect[i-1]*vect[k]*vect[j]);
}
out<<mat[1][n];
return 0;
}