Cod sursa(job #3321019)

Utilizator Andrei-Dani-10Pisla Andrei Daniel Andrei-Dani-10 Data 7 noiembrie 2025 22:27:17
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>

using namespace std;

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

const int nmax = 500;
const int64_t maxint64_t = (1ll << 60);
int n, a[nmax + 2];

int64_t dp[nmax + 2][nmax + 2];

int64_t costt(int i, int j, int k){
    return 1ll * a[i - 1] * a[j] * a[k];
}

int main(){

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

    for(int length = 2; length <= n; length++){
        for(int i = 1, j = length; j <= n; i++, j++){
            dp[i][j] = maxint64_t;

            for(int k = i; k + 1 <= j; k++){
                dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] + costt(i, k, j));
            }
        }
    }

    out<<dp[1][n]<<"\n";

    return 0;
}