Cod sursa(job #681628)

Utilizator ms-ninjacristescu liviu ms-ninja Data 17 februarie 2012 16:08:23
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <fstream>
using namespace std;
#define inf 0x3f3f3f3f
#define dim 505
long long unsigned v[dim], mat[dim][dim];
int main()
{
	ifstream fin("podm.in");
	ofstream fout("podm.out");
	int n, i, k,d,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(d=2;d<=n;++d)
	{
		i=1;j=d;
		for(;j<=n;++j,++i)
		{
			mat[i][j]=inf;
			for(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;
}