Cod sursa(job #1822165)

Utilizator BlackLordFMI Alex Oprea BlackLord Data 4 decembrie 2016 13:45:15
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <fstream>

using namespace std;

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

const int N = 510;
const long long INF=(1LL<<60);

int n, i, j, l, a[N], x;
long long d[N][N];

int main(){
    fin >> n;
    for (i = 1; i <= n + 1; ++i) {
        fin >> a[i];
    }
    for (l = 1; l < n; ++l) {
        for (i = 1; i + l <= n; ++i) {
            j = i + l;
            d[i][j] = INF;
            for (x = i; x < j; ++x) {
                d[i][j] = min(d[i][j], d[i][x] + d[x + 1][j] + 1LL * a[i] * a[x + 1] * a[j + 1]);
            }
        }
    }
    fout << d[1][n];
    return 0;
}