Pagini recente » Cod sursa (job #1158176) | Cod sursa (job #2398631) | Cod sursa (job #1258380) | Cod sursa (job #1227078) | Cod sursa (job #549285)
Cod sursa(job #549285)
#include <cstdio>
#define MaxN 505
#define infile "podm.in"
#define outfile "podm.out"
#define inf 500000000000000005LL
int d[MaxN],N;
long long c[MaxN][MaxN];
void read()
{
int i;
scanf("%d",&N);
for(i=0;i<=N;i++)
scanf("%d",&d[i]);
}
void sol()
{
int i,l,j,k;
long long min;
for(i=1;i<N;i++)
c[i][i+1]=d[i-1]*d[i]*d[i+1];
for(l=2;l<N;l++)
for(i=1;i<=N-l;i++)
{
j=i+l;
min=inf;
for(k=i;k<j;k++)
if(c[i][k]+c[k+1][j]+d[i-1]*d[k]*d[j]<min)
min=c[i][k]+c[k+1][j]+d[i-1]*d[k]*d[j];
c[i][j]=min;
}
}
void write()
{
printf("%lld\n",c[1][N]);
}
int main()
{
freopen(infile,"r",stdin);
freopen(outfile,"w",stdout);
read();
sol();
write();
fclose(stdin);
fclose(stdout);
return 0;
}