Pagini recente » Cod sursa (job #2088385) | Cod sursa (job #1772745) | Cod sursa (job #2596032) | Cod sursa (job #1687760) | Cod sursa (job #2042178)
#include <iostream>
#include <fstream>
#define dm 505
#define LL long long
#define inf8 100000000000000000LL
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
LL minim(LL a, LL b)
{
if(a>b)
return b;
else return a;
}
int n;
LL a[dm];
LL m[dm][dm];
int main()
{
fin >> n;
for(int i = 0; i <= n; i++)
fin >> a[i];
for(int i = 1; i <= n; i++)
m[i][i] = 0;
for(int i = 1; i <= n - 1; i++)
m[i][i+1] = a[i-1] * a[i] * a[i+1];
for(int i = 2; i < n; i++ ){
for(int j = 1; j <= n - i; j++){
m[i][i+j] = inf8;
for(int k = i; k < i + j; k++)
m[j][j+i] = minim(m[i][i+j], m[j][k]+m[k+1][i+j]+a[j-1]*a[k]*a[i+j]);
}
}
fout << m[1][n];
return 0;
}