Cod sursa(job #377803)

Utilizator GotenAmza Catalin Goten Data 26 decembrie 2009 13:36:00
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include<fstream.h>

long long m[510][510],u,c;
int a[510],n,i,k,d;

int main()
{
	ifstream f("podm.in");
	ofstream g("podm.out");
	f>>n;
	u=(1LL<<60);
	for(i=0;i<=n;i++)
		f>>a[i];
	for(i=1;i<=n;i++)
		m[i][i+1]=(long long)a[i-1]*a[i]*a[i+1];
	for(d=2;d<n;d++)
		for(i=1;i<=n-d;i++)
		{
			m[i][i+d]=u;
			for(k=i;k<i+d;k++)
			{
				c=m[i][k]+m[k+1][i+d]+(long long)a[i-1]*a[k]*a[i+d];
				if(m[i][i+d]>c)
					m[i][i+d]=c;
			}
		}
	g<<m[1][n];
	return 0;
}