Cod sursa(job #2852846)

Utilizator oporanu.alexAlex Oporanu oporanu.alex Data 19 februarie 2022 17:12:23
Problema Parantezare optima de matrici Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.94 kb
#include <bits/stdc++.h>
using namespace std;

const int nmax = 505;
const int INF = INT_MAX - 14;
ifstream fin("podm.in");
ofstream fout("podm.out");

int N;
int dim[nmax];
int best_scalar[nmax][nmax];

int main() {

    fin >> N;

    for(int i = 0; i <= N; ++i) {
        fin >> dim[i];
    }

    for(int i = 1; i <= N; ++i) {
        best_scalar[i][i] = 1;
    }

    for(int dist = 1; dist <= N; ++dist)
        for(int i = 1; i <= N - dist; ++i) {
            int j = i + dist;
            best_scalar[i][j] = INF;
            for(int k = i; k <= j - 1; ++k)
                best_scalar[i][j] = min(best_scalar[i][j],
                                        best_scalar[i][k] +
                                        best_scalar[k + 1][j]
                                        + dim[i - 1] * dim[k]
                                        * dim[j]);
        }

    fout << best_scalar[1][N] << '\n';

    return 0;
}