Pagini recente » Cod sursa (job #2932647) | Cod sursa (job #69791) | Cod sursa (job #2667249) | Cod sursa (job #2717761) | Cod sursa (job #1494444)
#include <stdio.h>
#define lim 500
#define max 1000000000000000000
int v[lim+2];
long long c[lim+1][lim+1];
long long min(long long a,long long b){
if(a<b)
return a;
else
return b;
}
int main(){
FILE *fin,*fout;
fin=fopen("podm.in","r");
fout=fopen("podm.out","w");
int i,j,k,n;
fscanf(fin,"%d",&n);
for(i=0;i<=n;i++)
fscanf(fin,"%d",&v[i]);
for(i=1;i<=n-1;i++)
c[i][i+1]=v[i-1]*v[i]*v[i+1];
for(i=2;i<=n-1;i++)
for(j=1;j<=n-i;j++){
c[j][i+j]=max+1;
for(k=j;k<=i+j-1;k++)
c[j][i+j]=min(c[j][i+j],c[j][k]+c[k+1][i+j]+(long long)v[j-1]*v[k]*v[i+j]);
}
fprintf(fout,"%lld",c[1][n]);
fclose(fin);
fclose(fout);
return 0;
}