Cod sursa(job #2114942)

Utilizator osiaccrCristian Osiac osiaccr Data 26 ianuarie 2018 09:13:23
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream>
#define DEF 510
#define INF 1 << 30

using namespace std;

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

long long v[DEF], D[DEF][DEF], n;

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

    for (int L = 3; L <= n; ++ L) {
        for (int i = 1; i + L - 1 <= n; ++ i) {
            int j = i + L - 1;
            D[i][j] = INF;
            for (int k = i + 1; k <= j - 1; ++ k) {
                D[i][j] = min (D[i][j], D[i][k] + D[k][j] + v[i] * v[k] * v[j]);
            }
        }
    }

    fout << D[1][n];

    return 0;
}