Cod sursa(job #2300401)

Utilizator Wh1plashOvidiu Taralesca Wh1plash Data 11 decembrie 2018 11:38:50
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#define INF 99999999999999
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");
long long d[505], n, M[502][502];
int main() {
    in >> n;
    for (int i = 0; i <= n; i++){
        in >> d[i];
    }
//    for (long long i = 0; i < n; i++) {
//        for (long long j = 0; j 2< n; j++){
//            M[i][j] = INF;
//        }
//    }
    for (int i = 1; i < n; i++){
        M[i][i+1] = d[i-1]*d[i]*d[i+1];
    }
    for (int len = 2; len <= n - 1; len++) {
        for(int i = 1; i + len <= n; i++) {
            M[i][i+len] = INF;
            for(int k = i; k < i + len; k++) {
                M[i][i+len] = min(M[i][i+len], M[i][k] + M[k+1][i+len]+ d[i-1]*d[k]*d[i+len]);
            }
        }
    }
    out << M[1][n];
    return 0;
}