Cod sursa(job #1251486)

Utilizator diana97Diana Ghinea diana97 Data 29 octombrie 2014 16:37:09
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>

using namespace std;

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

const int NMAX = 500 + 2;
const int INF = 0x7ffffff;

int n;
int v[NMAX];
long long sol[NMAX][NMAX];

void citeste() {
    f >> n;
    for (int i = 1; i <= n + 1; i++) f >> v[i];
}

void rezolva() {
    int j;
    long long solcrt;
    for (int l = 1; l < n; l++) {
        for (int i = 1; i <= n - l; i++) {
            j = i + l;
            sol[i][j] = INF;
            for (int k = i; k < j; k++) {
                solcrt = sol[i][k] + sol[k + 1][j] + 1LL * v[i] * v[k + 1] * v[j + 1];
                //cout << solcrt << endl;
                sol[i][j] = min(solcrt, sol[i][j]);
            }
        }
    }
    g << sol[1][n] << '\n';
}

int main() {
    citeste();
    rezolva();
    return 0;
}