Pagini recente » Cod sursa (job #473331) | Profil Lolluckestar | Cod sursa (job #2696069) | Cod sursa (job #3279040) | Cod sursa (job #1526314)
#include <cstdio>
using namespace std;
FILE *in,*out;
const int M = 1000000000;
const int N = 505;
int d[N];
long long c[N][N];
long long minim(long long a , long long b){
if(a < b) return a;
return b;
}
int main()
{
in = fopen("podm.in","r");
out = fopen("podm.out","w");
int i,j,n,k,p;
fscanf(in,"%d",&n);
for(i = 0 ; i <= n ; i++)
fscanf(in,"%d",&d[i]);
for(i = 0 ; i <n ; i++){
c[i][i]=0;
c[i][i+1] = d[i-1]*d[i]*d[i+1];
}
for(p = 2; p < n; p++)
for (i = 1;i <= n-p;i++) {
int j = i+p;
c[i][j]=M;
for (k = i ;k< j ; k++)
c[i][j]=minim(c[i][j],c[i][k] + c[k+1][j] + d[i-1]*d[k]*d[j]);
}
fprintf(out,"%lld\n",c[1][n]);
return 0;
}