Cod sursa(job #505615)

Utilizator chrisuPirvu Cristina chrisu Data 3 decembrie 2010 08:48:11
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<stdio.h>
const long long INF =(long long)1<<60;
int n, v[505], i, j, k;
long long a[505][505];
inline long long min (long long a, long long b)
{
	if (a<b) return a;
	return b;
}
int main()

{
	freopen("podm.in","r",stdin);
	freopen("podm.out","w",stdout);
	scanf("%d",&n);
	for(i=1;i<=n+1;i++)
		scanf("%d",&v[i]);
	for(i=n;i>=1;--i)
		for(j=i+1;j<=n;++j)
		{
			a[i][j]=INF;
			for(k=i;k<j;k++)
				a[i][j]=min(a[i][j],a[i][k]+a[k+1][j]+(long long)v[i]*(long long)v[k+1]*(long long)v[j+1]);
		}
		printf("%lld",a[1][n]);
	return 0;
}