Cod sursa(job #505618)

Utilizator taseTanase Alexandru tase Data 3 decembrie 2010 08:50:09
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include<stdio.h>
#include<stdlib.h>
long long a[600][600],x[600],n,q;
long long inf = (long long) 1<<59;
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",&x[i]);
	
	int i,j,k;
	for(i=n;i>=1;--i)
		for(j=i+1;j<=n+1;j++)
		{
			a[i][j] = (long long)inf;
			for(k=i;k<j;++k)
			{
				q = a[i][k] + a[k+1][j] + x[i]*x[k+1]*x[j+1];
				if(a[i][j] > q)
					a[i][j] = q;
			}
		}
		
	printf("%lld",a[1][n]);
	return 0;
}