Cod sursa(job #2596879)

Utilizator CharacterMeCharacter Me CharacterMe Data 10 aprilie 2020 16:31:53
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
typedef long long ll;

ll n;
ll nums[505], dp[505][505];

int main()
{

    fin >> n;
    ++n;

    for(ll i = 1; i <= n; ++i) fin >> nums[i];

    for(ll i = 2; i <= n - 1; ++i){
        for(ll j = 1; j <= n - i; ++j) dp[j][j + i] = LLONG_MAX;
    }

    for(ll p = 2; p <= n - 1; ++p){
        for(ll i = 1; i <= n - p; ++i){
            ll j = i + p;
            for(ll k = i + 1; k < j; ++k){
                dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j] + nums[i] * nums[k] * nums[j]);
            }
        }
    }

    fout << dp[1][n];

    return 0;
}