Cod sursa(job #3163923)

Utilizator alexandru.morusAlexandru Morus alexandru.morus Data 1 noiembrie 2023 17:47:48
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.93 kb
///Alexandru Morus
#include <bits/stdc++.h>

using namespace std;
ifstream in("podm.in");
ofstream out ("podm.out");
long long v[800];
long long mt[800][800];
int main()
{

    long long n,i,j,o;
    in >> n;
    for(i = 1; i <= n + 1; i ++)
    {
        in >> v[i];
    }
    for(i = 1; i < n; i ++)
    {
        long long unu = v[i];
        long long doi = v[i + 1];
        long long trei = v[i + 2];
        mt[i][i + 1] = unu * doi * trei;
    }
    for(i = 3; i <= n; i ++)
    {
        for(j = 1; j + i - 1 <= n; j ++)
        {
            long long st = j;
            long long stop = i + j - 1;
            long long oo = 99999999999999;
            for(o = st; o <= stop - 1; o ++)
            {
                oo = min(oo, mt[st][o] + mt[o + 1][stop] + v[st] * v[o + 1] * v[stop + 1]);
            }
            mt[st][stop] = oo;
        }
    }
    out << mt[1][n] << ' ';
    return 0;
}