Cod sursa(job #397345)

Utilizator NemultumituMatei Ionita Nemultumitu Data 16 februarie 2010 20:16:06
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <cstdio>
int n,v[505],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;
			int min=1800000000;
			for (int k=i;k<j;++k)
			{
				int 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("%d",a[1][n]);
	return 0;
}