Cod sursa(job #371244)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 4 decembrie 2009 16:55:48
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<stdio.h>
int n,i,M,L,R,K;
long long x[501],d[501][501],bst,act;
void read(),solve();
int main()
{
	read();
	solve();
	return 0;
}
void read()
{
	freopen("podm.in","r",stdin);
	freopen("podm.out","w",stdout);
	scanf("%d",&n);
	for(i=0;i<=n;i++)scanf("%lld",&x[i]);
}
void solve()
{
	for(M=2;M<=n;M++)
	{
		for(L=0,R=M;R<=n;L++,R++)
		{
			bst=d[L][L+1]+d[L+1][R]+x[L]*x[L+1]*x[R];
			for(K=L+1;K<R;K++)
			{
				act=d[L][K]+d[K][R]+x[L]*x[K]*x[R];
				bst=bst<act?bst:act;
			}
			d[L][R]=bst;
		}
	}
	printf("%lld\n",d[0][n]);
}