Pagini recente » Cod sursa (job #2026101) | Viata de dupa olimpiade (III) - Startup | Cod sursa (job #2129772) | Cod sursa (job #1620302) | Cod sursa (job #1830802)
#include <cstdio>
long long n,i,j,k,col,d[505],a[505][505];
int main()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%lld",&n);
for (i=1; i<=n+1; i++)
scanf("%lld",&d[i]);
for (i=1; i<=n; i++)
a[i][i]=0,a[i][i+1]=d[i]*d[i+1]*d[i+2],a[i+1][i]=i;
for (col=3; col<=n; col++)
{
i=1;
j=col;
while (j<=n)
{
a[i][j]=2000000000;
for (k=i; k<j; k++)
if (a[i][k]+a[k+1][j]+d[i]*d[k+1]*d[j+1]<a[i][j])
{
a[i][j]=a[i][k]+a[k+1][j]+d[i]*d[k+1]*d[j+1];
a[j][i]=k;
}
i++;
j++;
}
}
printf("%lld\n",a[1][n]);
return 0;
}