Cod sursa(job #504405)

Utilizator DeadEyeNaiba Mihai Lucian DeadEye Data 27 noiembrie 2010 16:58:29
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<cstdio>
long long n,i,j,k,vj,v[501],a[501][501];
void scrie()
{
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
			printf("%6d ",a[i][j]);
		printf("\n");
	}
}
int main()
{
	freopen("podm.in","r",stdin);
	freopen("podm.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n+1;i++)
		scanf("%lld",&v[i]);
	for(i=1;i<=n;i++)
		a[i][i]=0;
	for(i=n;i>=1;i--)
		for(j=i+1;j<=n;j++)
		{
			a[i][j]=999999999;
			for(k=i;k<j;k++)
			{
				vj=a[i][k]+a[k+1][j]+v[i]*v[k+1]*v[j+1];
				if(vj<a[i][j])
					a[i][j]=vj;
			}
		}
	scrie();
	printf("%lld\n",a[1][n]);
	return 0;
}