Cod sursa(job #380924)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 8 ianuarie 2010 08:39:35
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<cstdio>
#define N 502
#define minn(a,b) ((a>b)? (b): (a))
const int INF=(1<<31)-1;
long long a[N][N];
int v[N],n;
void citire()
{
	freopen("podm.in","r",stdin);
	freopen("podm.out","w",stdout);
	scanf("%d",&n);
	for (int  i=1; i<=n+1; ++i)
		scanf("%d",&v[i]);
}
void dinamica()
{
	for (int d=1; d<=n; ++d)
	{
		for (int i=1;i<=n; ++i)
		{
			int j=i+d;
			//if (j>n) continue;
			a[i][j]=INF;
			for (int k=i ; k<j; ++k)
				a[i][j]=minn(a[i][j],a[i][k]+a[k+1][j]+(long long)v[i]*v[k+1]*v[j+1]);
		}
	}
	printf("%lld",a[1][n]);
}
int main()
{
	citire();
	dinamica();
	return 0;
}