Cod sursa(job #907427)

Utilizator tudorv96Tudor Varan tudorv96 Data 7 martie 2013 22:33:12
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <algorithm>
#include <iostream>
using namespace std;

unsigned long long v[505], d[505][505], V[505];
int n;

#define MIN 500000000000000001

int main ()
{
	ifstream fin ("podm.in");
	fin >> n;		
	for (int i = 0; i <= n; ++i)
		fin >> v[i];
	fin.close();
	for (int i = 1; i < n; ++i)
		d[i][i+1] =  v[i-1] * v[i] * v[i+1];
	for (int D = 2; D < n; ++D)
		for (int i = 1; i <= n - D; ++i)
		{
			int j = i + D;
			unsigned long long Min = MIN;
			for (int k = i; k < j; ++k)
				Min = min (Min, d[i][k] + d[k+1][j] + v[i-1] * v[k] * v[j]);
			d[i][j] = Min;
		}
	ofstream fout ("podm.out");
	fout << d[1][n];
	fout.close();
	return 0;
}