Cod sursa(job #651295)

Utilizator FIIBogdanPricopPricop Mihai FIIBogdanPricop Data 20 decembrie 2011 02:14:35
Problema Parantezare optima de matrici Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.52 kb
#include<stdio.h>
#define inf 100000000000000000LL

int n,i,j,k,d;
long long M[505][505],dim[505];



int main()
{
	freopen("podm.in", "r", stdin);
	freopen("podm.out", "w", stdout);
	scanf("%d", &n);
	for(i=1;i<=n+1;i++)
		scanf("%lld", &dim[i]);
	for(d=2;d<=n;d++)
		for(i=1;i<=n-d+1;i++)
		{
			j=i+d-1;
			M[i][j]=inf;
			for(k=i;k<j;k++)
				if(M[i][j]>M[i][k]+M[k+1][j]+dim[i]*dim[k+1]*dim[j+1])
					M[i][j]=M[i][k]+M[k+1][j]+dim[i]*dim[k+1]*dim[j+1];
		}	
	printf("%lld\n", M[1][n]);
	return 0;
}