Pagini recente » Cod sursa (job #3128770) | Cod sursa (job #1121438) | Cod sursa (job #2925839) | Cod sursa (job #1380051) | Cod sursa (job #427174)
Cod sursa(job #427174)
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
typedef long long ll;
const ll oo=(ll)1e18;
int n;
ll x[501],f[501][501];
ll dp(int a,int b){
if (a==b) return 0;
if (a+1==b) return x[a]*x[a+1]*x[b+1];
if (f[a][b]!=-1) return f[a][b];
ll res=oo;
for (int i=a;i<b;i++){
res=min(res,dp(a,i)+dp(i+1,b)+x[a]*x[i+1]*x[b+1]);
}
return f[a][b]=res;
}
void open(){
freopen("podm.in","r",stdin);
freopen("podm.out","w",stdout);
}
int main(){
open();
scanf("%d",&n);
for (int i=0;i<=n;i++) scanf("%lld",&x[i]);
memset(f,-1,sizeof(f));
printf("%lld\n",dp(0,n-1));
return 0;
}