Cod sursa(job #380925)

Utilizator dorelStoica Razvan-Andrei dorel Data 8 ianuarie 2010 08:41:18
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<cstdio>
#define N 501
#define INF 666666666666666LL 
int v[1000] , n;
long long nr [N][N];
void citire () 
{
	scanf ("%d",&n);
	for (int i=1 ; i<=n+1 ; ++i)
	{
		scanf ("%d",&v[i]);
	}
}
void calcul () 
{		
	int d,j,i,k;
	for (d=1 ; d<n ; ++d)
	{
		for (i=1 ; i<=n-d ; ++i)
		{
			j=i+d;
			nr[i][j]=INF;
			for (k=i ; k<=j-1 ; ++k)
			{
				long long y=v[i]*v[k+1]*v[j+1];
				long long x=nr[i][k]+nr[k+1][j]+y;
				if (x<nr[i][j])
					nr[i][j]=x;
			}
		}
	}
}
int main () {
	freopen ("podm.in","r",stdin);
	freopen ("podm.out","w",stdout);
	citire ();
	calcul ();
	printf ("%lld",nr[1][n]);
	return 0;
}