Pagini recente » Cod sursa (job #3255226) | Cod sursa (job #1633989) | Cod sursa (job #2343147) | Cod sursa (job #2619864) | Cod sursa (job #384403)
Cod sursa(job #384403)
#include<stdio.h>
#include<stdlib.h>
#define SIZE 500
long long int n, d[SIZE], m[SIZE][SIZE],mp;
long long int min(long long int i, long long int j)
{
long long int minim = m[i][i]+m[i+1][j]+d[i-1]*d[i]*d[j];
for(long long int k=i+1; k<j; k++)
{
mp = m[i][k] + m[k+1][j] + d[i-1]*d[k]*d[j];
if (mp<minim) minim = mp;
}
return minim;
}
int main()
{
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%lld", &n);
int i;
for(i=0; i<=n; i++)
scanf("%lld", &d[i]);
fclose(stdin);
for(i=n-1; i>=1; i--)
for(int j=i+1; j<=n; j++)
if (j==i+1)
m[i][i+1] = d[i-1]*d[i]*d[i+1];
else
m[i][j] = min(i,j);
printf("%lld\n",m[1][n]);
fclose(stdout);
return 0;
}