Cod sursa(job #727592)

Utilizator Robert29FMI Tilica Robert Robert29 Data 28 martie 2012 09:26:07
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#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;
}