Cod sursa(job #396062)

Utilizator allynaAlina S allyna Data 14 februarie 2010 14:08:23
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <cstdio>
#define dim 510

long long n,i,j,k,d[dim],c[dim][dim],l, num;

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