Cod sursa(job #2376767)

Utilizator SqueekDanielTodasca Daniel SqueekDaniel Data 8 martie 2019 17:31:27
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>

#define llg long long

#define MAXN                505
#define INF 4000000000000000005

llg N, Dimm[MAXN];
llg DP[MAXN][MAXN];

void Dynamic() {
    for (llg len=2, i, j, k; len<=N; ++len)
        for (i=1, j=len; j<=N; ++i, ++j) {
            DP[i][j] = INF;
            for (k=i; k<j; ++k)
                DP[i][j] = std::min(DP[i][j], DP[i][k] + DP[k+1][j] + Dimm[i-1]*Dimm[k]*Dimm[j]);
        }
}

std::ifstream In ("podm.in");
std::ofstream Out("podm.out");

void Citire() {
    In >> N;
    for (llg i=0; i<=N; ++i)
        In >> Dimm[i];
}

void Rezolvare() {
    Dynamic();
    Out << DP[1][N] << '\n';
}

int main()
{
    Citire();
    Rezolvare();

    return 0;
}