Cod sursa(job #2392766)

Utilizator Alex_BubBuburuzan Alexandru Alex_Bub Data 30 martie 2019 13:19:10
Problema Parantezare optima de matrici Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>

using namespace std;

ifstream fin("podm.in");
ofstream fout("podm.out");

const int NMax = 500, oo = 1e9;

int N, DP[NMax + 5][NMax + 5], V[NMax + 5];

int main()
{
    fin >> N;

    for(int i = 1; i <= N + 1; i++)
        fin >> V[i];

    for(int l = 2; l <= N; l++)
        for(int st = 1; st + l - 1 <= N; st++)
        {
            int dr = st + l - 1; DP[st][dr] = oo;

            for(int k = st; k < dr; k++)
                DP[st][dr] = min(DP[st][dr], DP[st][k] + DP[k + 1][dr] + V[st] * V[k + 1] * V[dr + 1]);
        }
    fout << DP[1][N] << '\n';

    fin.close();
    fout.close();

    return 0;
}