Pagini recente » Cod sursa (job #1787637) | Cod sursa (job #341852) | Cod sursa (job #2633757) | Cod sursa (job #1521230) | Cod sursa (job #384401)
Cod sursa(job #384401)
#include<stdio.h>
#include<stdlib.h>
#define SIZE 500
long int n, d[SIZE], m[SIZE][SIZE],mp;
long int min(long int i, long int j)
{
long int minim = m[i][i]+m[i+1][j]+d[i-1]*d[i]*d[j];
for(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("%li", &n);
int i;
for(i=0; i<=n; i++)
scanf("%li", &d[i]);
fclose(stdin);
for(i=n-1; i>=1; i--)
for(long 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("%li\n",m[1][n]);
fclose(stdout);
return 0;
}