Cod sursa(job #701161)

Utilizator ELHoriaHoria Cretescu ELHoria Data 1 martie 2012 14:02:49
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 kb
#include <fstream>

using namespace std;

ifstream fin("podm.in");
ofstream fout("podm.out");

const long long INF = 1ll<<60;
long long bst[505][505] , d[505] , N;

int main()
{
	fin>>N;
	for(int i = 1;i <= N + 1;++i) fin>>d[i];
	for(int L = 1;L < N;++L)
		for(int i = 1;i <= N - L;++i)
		{
			int j = i + L;
			bst[i][j] = INF;
			for(int k = i;k < j;++k)
				bst[i][j] = min(bst[i][j], bst[i][k] + bst[k + 1][j]  + d[i] *d[k + 1] *d[j + 1]);
		}
	fout<<bst[1][N];
	return 0;
}