Pagini recente » Cod sursa (job #306275) | Cod sursa (job #180671) | Cod sursa (job #1430123) | Cod sursa (job #737565) | Cod sursa (job #380922)
Cod sursa(job #380922)
#include<cstdio>
#define N 502
#define minn(a,b) ((a>b)? (b): (a))
const int INF=(1<<31)-1;
long long a[N][N];
int v[N],n;
void citire()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%d",&n);
for (int i=1; i<=n+1; ++i)
scanf("%d",&v[i]);
}
void dinamica()
{
for (int d=1; d<=n; ++d)
{
for (int i=1;i<=n; ++i)
{
int j=i+d;
if (j>n) continue;
a[i][j]=INF;
for (int k=i ; k<j; ++k)
a[i][j]=minn(a[i][j],a[i][k]+a[k+1][j]+(long long)v[i]*v[k+1]*v[j+1]);
}
}
printf("%lld",a[1][n]);
}
int main()
{
citire();
dinamica();
return 0;
}