Cod sursa(job #1517048)

Utilizator VictoriaNevTascau Victoria VictoriaNev Data 3 noiembrie 2015 20:13:40
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <fstream>

using namespace std;
const int NMAX=501, INF=(1<<30);
int d[NMAX][NMAX], a[NMAX], n, i, j, q, k;
int main()
{
    ifstream in("podm.in");
    ofstream out("podm.out");
    in>>n;
    for(i=0; i<=n; i++)
        in>>a[i];
    for(i=1; i<n; i++)
        d[i][i+1]=a[i-1]*a[i]*a[i+1];
    for(q=2; q<n; q++)
        for(i=1; i<=n-q; i++)
        {
            int j=i+q;
            d[i][j]=INF;
            for(k=i; k<j; k++)
                d[i][j]=min(d[i][j], d[i][k]+d[k+1][j]+a[i-1]*a[k]*a[j]);

        }
    out<<d[1][n]<<'\n';
    return 0;
}