Cod sursa(job #2273901)

Utilizator Chirita_MateiChirita Matei Chirita_Matei Data 1 noiembrie 2018 09:38:54
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>
#define Mod 1000000007

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

long long dp[510][510];
int a[510];
int n;


int main()
{
    fin >> n;

    n++;
    for(int i = 1; i <= n; i++){
        fin >> a[i];
    }

    for(int d = 0; d <= n; d++){
        for(int i = 2; i + d <= n; i++){
            long long mini = 0;
            for(int k = i; k < i + d; k++){
                if(k == i) {mini = dp[i - 1][k - 1] + dp[k][i - 1 + d] + 1LL * a[i - 1] * a[k] * a[i + d]; continue;}
                mini = min(dp[i - 1][k - 1] + dp[k][i - 1 + d] + 1LL * a[i - 1] * a[k] * a[i + d], mini);
            }

            dp[i - 1][i - 1 + d] = mini;
        }
    }

    fout << dp[1][n - 1];

    return 0;
}