Cod sursa(job #542228)

Utilizator Catah15Catalin Haidau Catah15 Data 25 februarie 2011 23:33:26
Problema Parantezare optima de matrici Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
// Parantezare optima de matrici

#include <fstream>
#include <iostream>

using namespace std;

#define MAXN 505
#define INF (1 << 15)

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

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 = v + 1; i <= n; ++i)
		{
			int l = i - v, c = i;
			
			m[l][c] = INF;
			
			for (int k = 1; 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;
}