Cod sursa(job #2212784)

Utilizator dahaandreiDaha Andrei Codrin dahaandrei Data 14 iunie 2018 20:01:19
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>

using namespace std;

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

const int MAXN = 500;
const int MAXVAL = 10000;
const int inf = 1e18;

long long int dim[MAXN + 1];
long long int dp[MAXN + 1][MAXN + 1];
int n;

int main() {
	in >> n;

	for (int i = 0; i <= n; ++ i) {
		in >> dim[i];
	}

	for (int i = 2; i <= n; ++ i) {
		for (int j = i; j <= n; ++ j) {
			dp[i][j] = inf;
			for (int k = 1; k <= i - 1; ++ k) {
				dp[i][j] = min(dp[i][j], dp[i - k][j] + dp[k][j - i + k] + (dim[j - i] * dim[j - i + k] * dim[j]));
			}
		}
	}

	out << dp[n][n];

  return 0;
}