Cod sursa(job #2246480)

Utilizator BurlacuMateiBurlacu Matei BurlacuMatei Data 27 septembrie 2018 09:49:38
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#define MAX 510
#define MAX1 500000000000001

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

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

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

    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 = pmax[k][taietura] + pmax[taietura+1][j] + lg[k]*lg[taietura+1]*lg[j+1];
            if(p<=maxim) maxim=p;
        }

        pmax[k][j] = maxim;
    }

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