Pagini recente » Cod sursa (job #505334) | Cod sursa (job #99758) | Clasamentul arhivei Infoarena Monthly | Cod sursa (job #2966625) | Cod sursa (job #727592)
Cod sursa(job #727592)
#include<stdio.h>
FILE*f=fopen("podm.in","r");
FILE*g=fopen("podm.out","w");
int n,v[502];
long long m[502][502];
long long sol(int st,int dr)
{
if(m[st][dr]||st==dr)
return m[st][dr];
else
{
m[st][dr]=sol(st,st)+sol(st+1,dr)+v[st-1]*v[st]*v[dr];
for(int i=st+1;i<dr;++i)
{
long long x=sol(st,i)+sol(i+1,dr)+v[st-1]*v[i]*v[dr];
if(x<m[st][dr])
m[st][dr]=x;
}
}
return m[st][dr];
}
int main()
{
fscanf(f,"%d",&n);
for(int i=0;i<=n;++i)
fscanf(f,"%d",&v[i]);
fprintf(g,"%d",sol(1,n));
fclose(g);
fclose(f);
return 0;
}