Cod sursa(job #1500318)

Utilizator drobertDumitru Robert drobert Data 11 octombrie 2015 19:00:39
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
using namespace std;
ifstream in("podm.in");
ofstream out("podm.out");

#define NMAX 505
#define INF   100000000000000000LL

int n, d[NMAX];
long long best[NMAX][NMAX];

int main()
{
    int i, j, k, t;
    in>>n;
    for (i = 0;i <= n;i++)
        in>>d[i];
    for (i = 1;i <= n;i++)
        best[i][i] = 0;
    for (i = 1;i < n; i++)
        best[i][i + 1] = d[i - 1] * d[i] * d[i + 1];
    for (t = 2;t < n;t++)
        for (i = 1;i <= n - t;i++)
        {
            //j = ;
            best[i][j] = INF;
            for (k = i;k < i + t;k++)
                best[i][i + t] = min(best[i][i + t], best[i][k] + best[k + 1][i + t] + d[i - 1] * d[k] * d[i + t]);
        }
    out<<best[1][n];
}