Cod sursa(job #558630)

Utilizator andrei.dAndrei Diaconeasa andrei.d Data 17 martie 2011 13:08:27
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <cstdio>
#include <cstring>

#define file_in "podm.in"
#define file_out "podm.out"

#define ll long long
#define inf 10000000000000000LL

int n,i,j,k,d;
ll a[555][555];
int dim[10000];

int main(){
	
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d", &n);
	for (i=1;i<=n+1;++i)
		 scanf("%d", &dim[i]);
	
	for (d=1;d<n;++d)
	for (i=1;i<n;++i){
		j=i+d;
		a[i][j]=inf;
		for (k=i;k<j;++k){
				 
				 ll val=a[i][k]+a[k+1][j]+dim[i]*dim[k+1]*dim[j+1];
				 if (val<a[i][j])
					 a[i][j]=val;
			 }
	}
	
	printf("%lld\n", a[1][n]);
	
	return 0;
	
}