Cod sursa(job #3234082)

Utilizator betybety bety bety Data 6 iunie 2024 11:19:32
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
using ll = long long;
const ll inf = 1e18;
ll dp[505][505];
int s[505];
int n;
int main() {
	in >> n;
	for (int i = 0; i <= n; ++i) {
		in >> s[i];
		dp[i][i] = 0LL;
	}
	for (int l = 2; l <= n; ++l) {
		for (int i = 0, j = l - 1; j < n; ++i, ++j) {
			dp[i][j] = inf;
			for (int k = i; k < j; ++k) {
				dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] +
											 1LL * s[i] * s[k + 1] * s[j + 1]);
			}
			// cout << i << ' ' << j << " has " << dp[i][j] << '\n';
		}
	}
	out << dp[0][n - 1] << '\n';
	return 0;
}