Pagini recente » Cod sursa (job #1222060) | Cod sursa (job #1997709) | Cod sursa (job #1926485) | Cod sursa (job #767720) | Cod sursa (job #1755619)
#include <cstdio>
#define MAXN 500
#define INF 1000000000000000000LL
long long dp[MAXN+1][MAXN+1];
long long d[MAXN+2];
int main(){
FILE*fi,*fout;
int i,j,n,k;
fi=fopen("podm.in" ,"r");
fout=fopen("podm.out" ,"w");
fscanf(fi,"%d " ,&n);
for(i=1;i<=n+1;i++)
fscanf(fi,"%lld " ,&d[i]);
for(i=1;i<n;i++)
dp[i][i+1]=d[i]*d[i+1]*d[i+2];
for(i=2;i<n;i++)
for(j=1;j+i<=n;j++){
dp[j][j+i]=INF;
for(k=j;k<j+i;k++)
if(dp[j][j+i]>dp[j][k]+dp[k+1][j+i]+d[j]*d[j+i+1]*d[k+1])
dp[j][j+i]=dp[j][k]+dp[k+1][j+i]+d[j]*d[j+i+1]*d[k+1];
}
fprintf(fout,"%lld" ,dp[1][n]);
fclose(fi);
fclose(fout);
return 0;
}