Cod sursa(job #2246507)

Utilizator BurlacuMateiBurlacu Matei BurlacuMatei Data 27 septembrie 2018 10:11:46
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#define MAX 1000
#define MAX1 500000000000001
#define MAX2 1000000000000

using namespace std;
ifstream fin("par.in");
ofstream fout("par.out");

long long int pmax[MAX][MAX];
int lg[MAX];
int taietura;
int n;
long long int maxim=MAX1;
long long int p=MAX2;

int main()
{int i, j, k, ni;
    fin>>n;
    for(i = 1; i <= n + 1; i++)
        fin>>lg[i];

    p=(10000*10000);//*10000;
    p*=10000;
    ni=n;
    for(i=1;i<n;i++, ni--)
        for(k=1, j=i+1;k<ni;k++, j++)
    {
        maxim=MAX1;

        for(taietura = k; taietura <= j-1; taietura++)
        {
            p = lg[k] * lg[taietura+1];
            p *= lg[j+1];
            p += pmax[k][taietura] + pmax[taietura+1][j];
            if(p<=maxim) maxim=p;
        }

        pmax[k][j] = maxim;
    }

    fout<<pmax[1][n];
    return 0;
}