Cod sursa(job #543552)

Utilizator Catah15Catalin Haidau Catah15 Data 28 februarie 2011 11:41:39
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>

using namespace std;

#define MAXN 5005
#define INF (1LL << 60)

long long m[MAXN][MAXN], d[MAXN];
int n;

int main()
{
	ifstream f("podm.in");
	ofstream g("podm.out");
	
	f >> n;
	
	for (int i = 1; i <= n + 1; ++i)
		f >> d[i];
	
	for (int v = 1; v < n; ++v)
		for (int i = 1; i <= n - v; ++i)
		{
			int l = i, c = i + v;
			
			m[l][c] = INF;
			
			for (int k = l; k < c; ++k)
				m[l][c] = min (m[l][k] + m[k + 1][c] + d[l] * d[k + 1] * d[c + 1], m[l][c]);
		}
		
	g << m[1][n];
	
	f.close();
	g.close();
	
	return 0;
}