Cod sursa(job #541066)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 24 februarie 2011 19:59:05
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<stdio.h>
#include<algorithm>
#define UPD(s,m,d) BST[s][m]+BST[m][d]+x[s]*x[m]*x[d]
using namespace std;
int n,i,LG,ST,DR,MI;
long long x[501],BST[501][501],Bst,bst;
void read(),solve();
int main()
{
	read();
	solve();
	return 0;
}
void read()
{
	freopen("podm.in","r",stdin);
	freopen("podm.out","w",stdout);
	scanf("%d",&n);
	for(i=0;i<=n;i++)scanf("%lld",&x[i]);
}
void solve()
{
	for(LG=2;LG<=n;LG++)
	{
		for(ST=0,DR=LG;DR<=n;ST++,DR++)
		{
			MI=ST+1;BST[ST][DR]=UPD(ST,ST+1,DR);
			for(;MI<DR;MI++)BST[ST][DR]=min(BST[ST][DR],UPD(ST,MI,DR));
		}
	}
	printf("%lld\n",BST[0][n]);
}