Cod sursa(job #1603006)

Utilizator trutruvasilicaHuhurez Marius trutruvasilica Data 17 februarie 2016 09:23:57
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>

using namespace std;
const long long inf=(1LL<<62);
ifstream fin("podm.in");
ofstream fout("podm.out");
int d[518];
long long m[505][505];
inline long long podm(int n)
{   int k,i,j;
    for(i=1;i<=n-1;i++)
    {
        m[i][i+1]=1LL*d[i-1]*d[i]*d[i+1];
    }
    for(k=2;k<=n;k++)
    {
        for(i=1;i+k<=n;i++)
        {   m[i][i+k]=inf;
            for(j=i;j<i+k;j++)
            {
                m[i][i+k]=min(m[i][i+k],m[i][j]+m[j+1][i+k]+1LL*d[i-1]*d[j]*d[i+k]);
            }

        }
    }
    return m[1][n];
}
int main()
{
    int n,i;
    fin>>n;
    for(i=0;i<=n;i++) fin>>d[i];
    fout<<podm(n);
}