Cod sursa(job #617739)

Utilizator ms-ninjacristescu liviu ms-ninja Data 15 octombrie 2011 10:59:46
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
using namespace std;
#define dim 505
#define inf 0x3f3f3f
long long mat[dim][dim],v[dim];
int main()
{
	ifstream fin("podm.in");
	ofstream fout("podm.out");
	int n, i,j;
	
	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;
}