Cod sursa(job #876399)

Utilizator bratiefanutBratie Fanut bratiefanut Data 11 februarie 2013 19:49:18
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<fstream>
#include <math.h>
#define inf (1LL<<62)

using namespace std;

ifstream cin("podm.in");
ofstream cout("podm.out");

long long i, n, d[100000], a[10000][10000],k,j,l,m;;

int main()
{
    cin>>n;
    for(i=0;i<=n;i++)
    cin>>d[i];

    for(i=1;i<n;i++)
        a[i][i+1]=d[i-1]*d[i]*d[i+1];

    for(l=2;l<n;l++)
    for(i=1;i<=n-l;i++)
    {
        j=i+l;
        a[i][j]=inf;
        for(k=i;k<j;k++)
        {
            a[i][j] = min(a[i][j],a[i][k]+a[k+1][j]+d[i-1]*d[j]*d[k]);
        }
    }
    cout<<a[1][n];
    return 0;
}