Cod sursa(job #965742)

Utilizator mvcl3Marian Iacob mvcl3 Data 24 iunie 2013 16:39:42
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <fstream>
#define max_size 509
#define inf 10000000000
#define ll long long
using namespace std;

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

int n;
ll P[max_size], M[max_size][max_size];

inline void solve()
{
    for(int l = 2; l <= n; ++l)
        for(int i = 1; i <= n - l + 1; ++i)
        {
            int j = i + l - 1;
            M[i][j] = inf;
            for(int k = i; k < j; ++k)
                M[i][j] = min(M[i][j], M[i][k] + M[k + 1][j] + P[i - 1] * P[k] * P[j]);
        }
}

int main()
{
    f >> n;
    for(int i = 0; i <= n; ++i)
        f >> P[i];

    solve();

    g << M[1][n] << '\n';
}