Pagini recente » Cod sursa (job #3280919) | Cod sursa (job #520856) | Istoria paginii propuneri/2-concurs-studenti | Cod sursa (job #1285333) | Cod sursa (job #2030619)
#include <stdio.h>
#define MAX_N 500
#define min(a,b) a<b?a:b
long long v[MAX_N + 1],Solve[MAX_N + 1][MAX_N + 1];
long long solve(int st, int dr){
int i;
long long op;
if(Solve[st][dr]==0){
if(st+1==dr)
Solve[st][dr]=0;
else{
op=1LL<<62;
for(i=st+1; i<dr; i++)
op=min(op,v[st]*v[i]*v[dr]+solve(st,i)+solve(i, dr));
Solve[st][dr]=op;
}
}
return Solve[st][dr];
}
int main(){
FILE *fin=fopen("podm.in","r");
FILE *fout=fopen("podm.out","w");
int n,i;
fscanf(fin,"%d",&n);
for(i=0; i <= n; i++)
fscanf(fin,"%lld", &v[i]);
fprintf(fout,"%lld",solve(0,n));
fclose(fin);
fclose(fout);
return 0;
}