Cod sursa(job #397357)

Utilizator NemultumituMatei Ionita Nemultumitu Data 16 februarie 2010 20:29:59
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <cstdio>
int n,v[505];
long long a[505][505];

int main()
{
	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]);
	for (int d=2;d<=n;++d)
		for (int i=1;i<=n-d+1;++i)
		{
			int j=i+d-1;
			long long min=90000000000;
			for (int k=i;k<j;++k)
			{
				long long x=a[i][k]+a[k+1][j]+v[i]*v[k+1]*v[j+1];
				if (x<min)
					min=x;
			}
			a[i][j]=min;
		}
	printf("%lld",a[1][n]);
	return 0;
}