Cod sursa(job #3253207)

Utilizator Alexbora13Bora Ioan Alexandru Alexbora13 Data 1 noiembrie 2024 22:59:53
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <bits/stdc++.h>
#define int long long
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
const int MAX = 1e18;
int dp[505][505];
int s[505];
int n;
signed main() 
{
	fin >> n;
	for (int i = 0; i <= n; ++i) 
    {
		fin >> 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] = MAX;
			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]);
			}
		}
	}
	fout << dp[0][n - 1] << '\n';
	return 0;
}