Cod sursa(job #3321018)

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

using namespace std;

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

const int nmax = 500;
const int maxint = (1 << 30);
int n, a[nmax + 2];

int dp[nmax + 2][nmax + 2];

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

int main(){

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

    for(int length = 1; length <= n; length++){
        for(int i = 1, j = length; j <= n; i++, j++){
            dp[i][j] = maxint * (length > 1);

            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;
}