Cod sursa(job #787348)

Utilizator alexalghisiAlghisi Alessandro Paolo alexalghisi Data 13 septembrie 2012 11:02:47
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <fstream>
#include <algorithm>
using namespace std;

int v[505];
long long minim=1LL<<55;
long long m[505][505];


int fct(int i,int j)
{
	if(i==j-1)
		return 0;
	if(i==j-2)
		return v[i]*v[i+1]*v[j];
	if(m[i][j]==0)//daca nu l-am calculat
	{
		m[i][j]=1<<30;
		for(int k=i+1;k<j;k++)
		{
			m[i][j]=min(m[i][j], fct(i,k)+fct(k,j)+v[i]*1LL*v[k]*v[j] );
		}
	}

	return m[i][j];
}


int main()
{
	int n;
	ifstream f;
	ofstream g;
	f.open("podm.in");
	g.open("podm.out");
	f>>n;
	for(int i=1;i<=n+1;i++)
		f>>v[i];

	g<<fct(1,n+1);	

	return 0;
}