Cod sursa(job #1616038)

Utilizator aimrdlAndrei mrdl aimrdl Data 27 februarie 2016 02:48:26
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <algorithm>

#define MAX 99999999
using namespace std;

int v[505];
int m[505][505];

int main (void) {
	freopen("podm.in", "r", stdin);
	freopen("podm.out", "w", stdout);
	
	int n;
	
	cin >> n;
	
	for (int i = 0; i <= n; ++i) {
		cin >> v[i];
	}
	
	for (int i = 1; i <= n; ++i) {
		for (int j = i + 1; j <= n; ++j) {
			m[i][j] = MAX;
		}
	}
	
	for (int inc = 1; inc < n; ++inc) {
		for (int i = 1; i <= n - inc; ++i) {
			int j = i + inc;
			for (int k = i; k < j; ++k) {
				m[i][j] = min (m[i][j], m[i][k] + m[k+1][j] + v[i-1] * v[k] * v[j]);
			}
		}
	}
	
	cout << m[1][n];
	
	return 0;
}