Cod sursa(job #380940)

Utilizator dorelStoica Razvan-Andrei dorel Data 8 ianuarie 2010 09:07:58
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include<cstdio>
#define N 501
#define INF 100000000000000000LL
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 ; ++i)
		{
			j=i+d;
			if (j>n)
				continue;
			nr[i][j]=INF;
			for (k=i ; k<j ; ++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;
			}
		}
	}
	printf ("%lld",nr[1][n]);
}
int main () {
	freopen ("podm.in","r",stdin);
	freopen ("podm.out","w",stdout);
	citire ();
	calcul ();
	return 0;
}