Cod sursa(job #1892359)

Utilizator FlorinHajaFlorin Gabriel Haja FlorinHaja Data 24 februarie 2017 22:06:54
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>

using namespace std;

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

unsigned long long sol[505][505];
int n, i, a[505],j,w,l;

int main() {
    f >> n;
    for (i = 0; i <=n; i++)
        f >> a[i];
    for (i = 1; i < n; i++)
        sol[i][i+1] = a[i-1]*a[i]*a[i+1];

    for (l = 3; l <= n; l++) {
        for (i = 1; i+l-1 <= n; i++) {
            j = i+l-1;
            sol[i][j] = 1e15;
            for (w = i; w < j; w++)
                sol[i][j] = min(sol[i][j], sol[i][w]+sol[w+1][j] + 1LL*a[i-1]*a[w]*a[j]);
        }
    }
    g << sol[1][n];
    return 0;
}