Pagini recente » Cod sursa (job #22488) | Cod sursa (job #275085) | Cod sursa (job #1422692) | Cod sursa (job #613661) | Cod sursa (job #1074803)
#include <iostream>
#include <fstream>
#include <cmath>
#define maxn 510
#define infinit 0xfffffffffffff
#define ll long long
using namespace std;
ll mat[maxn][maxn];
ll vect[maxn];
ll minim(ll a, ll b)
{
if (a<b) return a;
else return b;
}
int main()
{
int n, k,i,j;
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;
}