Cod sursa(job #1180981)

Utilizator alevasluialeHuhurez Marius alevasluiale Data 1 mai 2014 16:18:18
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>
#define inf 0x3f3f3f3f
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
int d[505],m[505][505];
inline int podm(int n)
{   int k,i,j;
    long long minim;
    for(i=1;i<=n-1;i++)
    {
        m[i][i+1]=d[i-1]*d[i]*d[i+1];
    }
    for(k=2;k<=n;k++)
    {
        for(i=1;i<=n-k;i++)
        {   minim=999999999;
            for(j=i;j<i+k;j++)
            {
                if(m[i][j]+m[j+1][i+k]+d[i-1]*d[j]*d[i+k]<minim) minim=m[i][j]+m[j+1][i+k]+d[i-1]*d[j]*d[i+k];
            }
            m[i][i+k]=minim;
        }
    }
    return m[1][n];
}
int main()
{
    int n,i;
    fin>>n;
    for(i=0;i<=n;i++) fin>>d[i];
    fout<<podm(n);
}