Cod sursa(job #1968767)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 17 aprilie 2017 20:50:13
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#include <iostream>

using namespace std;

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

const int nmax = 505;
long long f_mare = 6e15;
int n, i, j, l, k;
long long sol[nmax][nmax], w[nmax];

int main() {
    f >> n;
    for (i = 0; i <= n; i++)
        f >> w[i];
    for (i = 1; i < n; i++)
        sol[i][i+1] = w[i-1]*w[i]*w[i+1];
    for (l = 3; l <= n; l++)
        for (i = 1; i+l-1 <= n; i++) {
            j = i+l-1;
            sol[i][j] = f_mare;
            for (k = i; k < j; k++)
                sol[i][j] = min(sol[i][j], sol[i][k]+sol[k+1][j] + w[i-1]*w[k]*w[j]);
        }
    g << sol[1][n];
    return 0;
}