Mai intai trebuie sa te autentifici.

Cod sursa(job #525760)

Utilizator icepowdahTudor Didilescu icepowdah Data 26 ianuarie 2011 03:19:15
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <cstdio>
#include <climits>
using namespace std;

#define NMAX 500

int main(void)
{
	int n, i, j, k, l, q;
	int d[NMAX+1];
	int M[NMAX+1][NMAX+1];

	freopen("podm.in","r",stdin);
	scanf("%d",&n);

	for (i=0;i<=n;++i)
	{
		scanf("%d",&d[i]);
		M[i][i] = 0;
	}

	for (l=2;l<=n;++l)
	{
		for (i=1;i<=n-l+1;++i)
		{
			j = i+l-1;
			M[i][j] = INT_MAX;
			for (k=i;k<j;++k)
			{
				q = M[i][k]+M[k+1][j]+d[i-1]*d[k]*d[j];
				if (q < M[i][j])
				{
					M[i][j] = q;
				}
			}
		}
	}

	freopen("podm.out","w",stdout);
	printf("%d\n",M[1][n]);

	return 0;
}