Cod sursa(job #552136)

Utilizator ghitzZzaGheorghita Hurmuz ghitzZza Data 11 martie 2011 18:19:24
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 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;
}