Cod sursa(job #2003968)

Utilizator DavidLDavid Lauran DavidL Data 24 iulie 2017 15:00:47
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fi("podm.in");
ofstream fo("podm.out");

int n,nr,cost_total;
vector <int> x;
int main()
{
    fi>>n;
    for (int i=1; i<=n+1; i++)
        fi>>nr,x.push_back(nr);
    if (n==1||n==2)
        fo<<0;
    else
    {
        int lungime=n+1;
        while (lungime>2)
        {
            int pozitie=0,cost_minim=x[0]*x[1]*x[2];
            for (int i=1; i<lungime-2; i++)
                if (x[i]*x[i+1]*x[i+2]<cost_minim)
                    pozitie=i,cost_minim=x[i]*x[i+1]*x[i+2];
            x.erase(x.begin()+pozitie+1);
            cost_total+=cost_minim;
            lungime--;
        }
    }
    fo<<cost_total;
    fi.close();
    fo.close();
    return 0;
}