Cod sursa(job #1527005)

Utilizator sebinechitasebi nechita sebinechita Data 17 noiembrie 2015 19:24:47
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
#define MAX 505
#define INF (~(1ll<<63))
long long a[MAX][MAX], b[MAX];

long long rez(int st, int dr)
{
    if(a[st][dr])
        return a[st][dr];
    if(dr <= st)
        return 0;
    a[st][dr] = INF;
    for(int i = st ; i < dr ; i++)
    {
        a[st][dr] = min(a[st][dr], rez(st, i) + 1ll * b[st] * b[i + 1] * b[dr + 1] + rez(i + 1, dr));
    }
    return a[st][dr];
}

int main()
{
    int n, i, j;
    fin >> n;
    for(i = 1 ; i <= n + 1 ; i++)
    {
        fin >> b[i];
    }
//    cout << INF << " ";

    fout << rez(1, n);
}