Cod sursa(job #582471)

Utilizator jupanubv92Popescu Marius jupanubv92 Data 15 aprilie 2011 13:36:59
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <cstdio>
#include <cstring>
#define Nmx 604
#define INF 1LL<<60

using namespace std;

long long a[Nmx][Nmx],d[Nmx];
int n;

void read()
{
    scanf("%d",&n);
    for(int i=1;i<=n+1;++i)
        scanf("%lld",&d[i]);
}

inline long long min(long long a,long long b)
{
    if(a<b) return a;
    return b;
}
void solve()
{
    for(int col=2;col<=n;++col)
        for(int i=1;i<=n-col+1;++i)
        {
            int j=i+col-1;
            a[i][j]=INF;
            for(int k=i;k<j;++k)
                a[i][j]=min(a[i][j],a[i][k]+a[k+1][j]+d[i]*d[k+1]*d[j+1]);
        }
    printf("%lld\n",a[1][n]);
}

int main()
{
    freopen("podm.in","r",stdin);
    freopen("podm.out","w",stdout);
    read();
    solve();
    return 0;
}