Cod sursa(job #430260)

Utilizator GotenAmza Catalin Goten Data 30 martie 2010 21:06:01
Problema Parantezare optima de matrici Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<fstream>
#define oo (1<<30)
#define nmax 510
using namespace std;
long long dp[nmax][nmax];
int dim[nmax];
int main()
{
	int n,i,j,d;
	ifstream f("podm.in");
	ofstream g("podm.out");
	f>>n;
	for(i=0;i<=n;i++)
		f>>dim[i];
	for(i=1;i<=n;i++)
		for(j=i;j<=n;j++)
			dp[i][j]=oo;
	for(i=1;i<=n;i++)
	{
		dp[i][i]=0;
		dp[i][i+1]=dim[i-1]*dim[i]*dim[i+1];
	}
	for(i=1;i<=n;i++)
		for(j=i+2;j<=n;j++)
			for(d=i;d<=j;d++)
				if(dp[i][j]>dp[i][d]+dp[d+1][j]+dim[i-1]*dim[d]*dim[j])
					dp[i][j]=dp[i][d]+dp[d+1][j]+dim[i-1]*dim[d]*dim[j];
	g<<dp[1][n];
	return 0;
}