Pagini recente » Cod sursa (job #2373737) | Cod sursa (job #1069902) | Cod sursa (job #976023) | Cod sursa (job #2118407) | Cod sursa (job #702210)
Cod sursa(job #702210)
#include <cstdio>
#define NM 510
#define INF 0x3f3f3f3f
#define LL long long
using namespace std;
inline LL min(LL a,LL b){return (a<b?a:b);}
LL N,D[NM],M[NM][NM];
int main() {
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
scanf("%d",&N);
for (LL i=0;i<=N;i++) scanf("%d",&D[i]);
for (LL i=0;i<=N+1;i++)
for (LL j=0;j<=N+1;j++)
M[i][j]=INF;
for (LL i=0;i<=N;i++) M[i][i]=0;
for (LL i=1;i<N;i++) M[i][i+1]=D[i-1]*D[i]*D[i+1];
for (LL d=2;d<N;d++)
for (LL i=1;i<=N-d;i++)
for (LL k=i;k<i+d;k++)
M[i][i+d]=min(M[i][i+d],M[i][k]+M[k+1][i+d]+D[i-1]*D[k]*D[i+d]);
printf("%d\n",M[1][N]);
return 0;
}