Cod sursa(job #617770)

Utilizator ms-ninjacristescu liviu ms-ninja Data 15 octombrie 2011 11:15:16
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>
using namespace std;
#define dim 505
long long unsigned mat[dim][dim],v[dim];
int main()
{
	ifstream fin("podm.in");
	ofstream fout("podm.out");
	int n, i,j;
	long long unsigned inf;
	
	inf=1;
	for(i=1;i<=63;++i)
		inf=inf*2;
	
	fin>>n;
	
	for(i=0;i<=n;++i)
		fin>>v[i];
	
	for(i=1;i<n;++i)
		mat[i][i+1]=v[i-1]*v[i]*v[i+1];


	for(int d=2;d<=n-1;++d)
		for(i=1;i<=n-d;++i)
		{
			int j=i+d;
			mat[i][j]=inf;
			for(int k=i;k<=j-1;++k)
				mat[i][j]=min(mat[i][j],mat[i][k]+mat[k+1][j]+v[i-1]*v[k]*v[j]);
		}
	
	
	fout<<mat[1][n];
	
	return 0;
}