Cod sursa(job #1274298)

Utilizator refugiatBoni Daniel Stefan refugiat Data 23 noiembrie 2014 18:08:23
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
int main()
{
    ifstream si;
    si.open("podm.in");
    ofstream so;
    so.open("podm.out");
    int n;
    si>>n;
    long long d[n+1];
    int i;
    for(i=0;i<=n;++i)
    {
        si>>d[i];
    }
    long long m[n+1][n+1];
    int j,k;
    m[n][n]=0;
    for(i=n-1;i>0;--i)
    {
        m[i][i]=0;
        m[i][i+1]=d[i-1]*d[i]*d[i+1];
    }
    long long minn;
    for(i=2;i<n;++i)
    {
        for(j=n-i;j>=1;--j)
        {
            minn=m[j][j]+m[j+1][j+i]+d[j-1]*d[j]*d[j+i];
            for(k=j+1;k<j+i;++k)
            {
                if(minn>m[j][k]+m[k+1][j+i]+d[j-1]*d[k]*d[j+i])
                    minn=m[j][k]+m[k+1][j+i]+d[j-1]*d[k]*d[j+i];
            }
            m[j][j+i]=minn;
        }
    }
    so<<m[1][n];
}