Cod sursa(job #508620)

Utilizator Teodor94Teodor Plop Teodor94 Data 9 decembrie 2010 10:11:42
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<cstdio>

const int N=505;
const long long MAX=1<<63;

int n,d[N];
long long a[N][N];

void citire()
{
	freopen("podm.in","r",stdin);
	freopen("podm.out","w",stdout);
	scanf("%d",&n);
	for (int i=1;i<=n;++i)
		scanf("%d",&d[i]);
}

void dinamica()
{
	long long min;
	for (int i=n-1;i>0;--i)
	{
		for (int j=i+1;j<=n;++j)
		{
			min=0;
			for (int k=i;k<j;++k)
				if (a[i][k]+a[k+1][j]+d[i]*d[k+1]*d[j+1]>min)
					min=a[i][k]+a[k+1][j]+d[i]*d[k+1]*d[j+1];
			a[i][j]=min;
		}
	}
	printf("%lld\n",a[1][n]);
	
}

int main()
{
	citire();
	dinamica();
	return 0;
}