Cod sursa(job #2349914)

Utilizator JasminaCornesteanJasmina Cornestean JasminaCornestean Data 20 februarie 2019 20:35:43
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#define INF 1000000000000LL
using namespace std;
ifstream fi("podm.in");
ofstream fo("podm.out");
long long n;
long long L[501],C[501];
long long D[502];
long long Q[501][501];
int main()
{
    fi>>n;
    for (int i=1;i<=n+1;i++)
        fi>>D[i];
    for (int i=1;i<=n;i++)
    {
        L[i]=D[i];
        C[i]=D[i+1];
    }
    /// se construieste Q
    for (int i=n-1;i>=1;i--)
        for (int j=i+1;j<=n;j++)
        {
            Q[i][j]=INF;
            for (int k=i;k<=j-1;k++)
                Q[i][j]=min(Q[i][j],Q[i][k]+Q[k+1][j]+L[i]*C[k]*C[j]);
        }
    fo<<Q[1][n];
    fi.close();
    fo.close();
    return 0;
}