Cod sursa(job #1090927)

Utilizator projectanduFMI Stanescu Andrei Alexandru projectandu Data 23 ianuarie 2014 11:46:32
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <iostream>
#include <fstream>

using namespace std;

int m[501][501],n,d[501];
ifstream q("podm.in");
ofstream o("podm.out");

int main()
{
    int i,j,lung,aux,k;
    q>>n;
    for(int i=0;i<=n;i++)
        q>>d[i];
    for(int i=1;i<=n-1;i++)
        m[i][i+1]=d[i-1]*d[i]*d[i+1];

    for(int lung=2;lung<=n-1;++lung)
        for(int i=1;i<=n-lung;++i)
        {
            j=i+lung;
            m[i][j]=0x33ffff;
            for(k=i+1;k<=j-1;++k)
            {
                aux=m[i][k]+m[k+1][j]+d[i-1]*d[i]*d[i+1];
                if(aux < m[i][j])
                    m[i][j]=aux;
            }
        }
    cout<<m[1][n];
    return 0;
}