Cod sursa(job #3312984)

Utilizator Razvan8888Popescu Razvan Razvan8888 Data 1 octombrie 2025 16:06:26
Problema Parantezare optima de matrici Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <fstream>

using namespace std;

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

int n, d[505], m[505][505];

int main(){
    in>>n;
    for(int i = 0; i <= n; i++){
        in>>d[i];
    }
    for(int i = 1; i <= n; i++)
        m[i][i] = 0;
    for(int i = 1; i < n; i++)
        m[i][i+1] = d[i-1]*d[i]*d[i+1];
    for(int p = 2; p <= n-1; p++){
        for(int i = 1; i + p <= n; i++){
            int mini = 1e9;
            for(int k = i; k < i + p; k++){
                int nr = m[i][k] + m[k+1][i+p] + d[i-1] * d[k] * d[i+p];
                if(nr < mini){
                    mini = nr;
                }
            }
            m[i][i+p] = mini;
        }
    }
    out<<m[1][n];
    return 0;
}