Pagini recente » Cod sursa (job #680851) | preONI 2008, Clasament Runda Finala, Clasele 11-12 | Cod sursa (job #195771) | Cod sursa (job #1550626) | Cod sursa (job #649804)
Cod sursa(job #649804)
#include "stdio.h"
const long INF=1000000000LL;
const int MAXN = 505;
int Min(int a, int b){
if(a<b)
return a;
return b;
}
int main(){
FILE *f;
long M[MAXN][MAXN],d[MAXN];
int n,i,j,k,m;
f = fopen("podm.in","r");
fscanf(f,"%d",&n);
for(i=0;i<=n;++i)
fscanf(f,"%d",&d[i]);
fclose(f);
for(i=1;i<=n;++i)
M[i][i] = 0;
for(i=1;i<=n-1;++i)
M[i][i+1] = d[i-1]*d[i]*d[i+1];
for(i=2;i<=n-1;++i)
for(j=1;j<=n-i;++j){
m = j+i;
M[j][m] = INF;
for(k=j;k<=m-1;++k)
M[j][m] = Min(M[j][m],M[j][k] + M[k+1][m] + d[j-1]*d[k]*d[m]);
}
f = fopen("podm.out","w");
fprintf(f,"%d \n",M[1][n]);
return 0;
}