Cod sursa(job #380918)

Utilizator dorelStoica Razvan-Andrei dorel Data 8 ianuarie 2010 08:22:17
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<cstdio>
#define N 501
int v[501] , 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;
			nr[i][j]=1<<30;
			for (k=i ; k<=j-1 ; ++k)
			{
				long long x=nr[i][k]+nr[k+1][j]+(long long)v[i]*v[k+1]*v[j+1];
				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;
}