Cod sursa(job #2638931)

Utilizator PushkinPetolea Cosmin Pushkin Data 30 iulie 2020 16:53:07
Problema Parantezare optima de matrici Scor 20
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> d)
{
    if(d.size()==2)
        return 0;
    else if(d.size()==3)
        return d[0]*d[1]*d[2];
    int mn=INT_MAX, x, y;
    for(unsigned int i=1;i<=d.size()-2;i++)
    {
        x=solve(vector<int>(d.begin(), d.begin()+i+1));
        y=solve(vector<int>(d.begin()+i, d.end()));
        mn=min(mn, x+y+d[0]*d[d.size()-1]*d[i]);
    }
    return mn;
}
int main()
{
    int n;///de matrici
    vector<int> d;///indici

    ///input
    ifstream f("podm.in");
    f>>n;
    d.resize(n+1);
    for(int i=0;i<=n;i++)
        f>>d[i];

    ///output
    ofstream g("podm.out");
    g<<solve(d);

    return 0;
}