Cod sursa(job #397378)

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

int main()
{
	freopen ("podm.in","r",stdin);
	freopen ("podm.out","w",stdout);
	scanf("%lld",&n);
	for (int i=1;i<=n+1;++i)
		scanf("%lld",&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=-1;
			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 (min==-1)
                                        min=x;
				if (x<min)
					min=x;
			}
			a[i][j]=min;
		}
	printf("%lld",a[1][n]);
	return 0;
}