Cod sursa(job #1052072)

Utilizator brainwashed20Alexandru Gherghe brainwashed20 Data 10 decembrie 2013 20:45:21
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<fstream>
#include<algorithm>

using namespace std;

const int MaxSize = 512;
const long long Inf = 1LL << 61;

ifstream f("podm.in");
ofstream g("podm.out");

int n;
long long v[MaxSize], d[MaxSize][MaxSize];

int main() {

	int i, j, k, step;

	f >> n;

	for (i = 0; i <= n; ++i)
		f >> v[i];

	for (i = 1; i <= n; ++i)
		for (j = 1; j <= n; ++j)
			d[i][j] = (i == j ? 0 : Inf);

	for (step = 1; step < n; ++step)
		for (i = 1; i <= n - step; ++i)
			for (j = i + step, k = i; k < j; ++k)
				d[i][j] = min(d[i][j], d[i][k] + d[k + 1][j] + v[i - 1] * v[k] * v[j]);

	g << d[1][n];

	f.close();
	g.close();

	return 0;
}