Pagini recente » Cod sursa (job #2047948) | Cod sursa (job #384032) | Cod sursa (job #789750) | Cod sursa (job #1960445) | Cod sursa (job #2244887)
#include <fstream>
#include <cstring> //memset
#include <vector>
#include <climits>
std::ifstream cin("podm.in");
std::ofstream cout("podm.out");
#define maxn 1050
#define min(a,b) a<b?a:b
long long inf = 2000000000000;
using namespace std;
long long matMin[maxn][maxn],d[maxn];
int N;
int main()
{
cin>>N;
for(int i=0;i<=N;i++)
cin>>d[i];
for(int i=0;i<=N;i++)
matMin[i][i+1]=d[i-1]*d[i]*d[i+1];
for(int w=2;w<=N;w++)
for(int i=1;i<=N-w+1;i++){
int j=i+w;
matMin[i][j]=inf;
for(int k=i;k<j;k++)
matMin[i][j]=min(matMin[i][j], matMin[k+1][j]+matMin[i][k]+d[i-1]*d[k]*d[j]);
}
cout<<matMin[1][N];
}