Pagini recente » Cod sursa (job #817728) | Cod sursa (job #937086) | Cod sursa (job #229013) | Cod sursa (job #1899023) | Cod sursa (job #2131394)
#include <iostream>
#include <cstdio>
#define N 505
#define inf 1LL<<62
#define min(a, b) a<b?a:b
using namespace std;
int n;
long long a[N], d[N][N];
void citire()
{
scanf("%d\n", &n);
for(int i=0;i<=n;i++)
scanf("%d ", &a[i]);
}
void calcul()
{
for(int i=1;i<n;i++)
d[i][i+1]=a[i-1]*a[i]*a[i+1];
for(int dim=1;dim<n;dim++)
for(int i=1;i<=n-dim;i++)
{
d[i][i+dim]=inf;
for(int k=i;k<i+dim;k++)
d[i][i+dim]=min(d[i][i+dim], d[i][k]+d[k+1][i+dim]+a[i-1]*a[k]*a[i+dim]);
}
}
int main()
{
freopen("podm.in", "r", stdin);
freopen("podm.out", "w", stdout);
citire();
calcul();
printf("%lld", d[1][n]);
return 0;
}