Cod sursa(job #1118839)

Utilizator MutescuMutescu Alexandru Mutescu Data 24 februarie 2014 13:33:10
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <cstdio>
#define Mat 501
#define wow 100000000000000000LL
using namespace std;
long long v[Mat][Mat],a[Mat];
int i,j,l,n,k;
int main()
{   freopen("podm.in","r",stdin);
    freopen ("podm.out","w",stdout);
    scanf("%d",&n);
    for(i=0;i<=n;i++)
    scanf("%lld",&a[i]);
for (i=1;i<n;++i)
        v[i][i+1]=a[i-1]*a[i]*a[i+1];

for(k=2;k<n;k++)
for(i=1;i<=n-k;i++)
{v[i][i+k]=wow;
for(j=i;j<i+k;j++)
if(v[i][i+k]<v[i][j]+v[j+1][i+k]+a[i-1]*a[j]*a[i+k])
    v[i][i+k]=v[i][i+k];
    else
    v[i][i+k]=v[i][j]+v[j+1][i+k]+a[i-1]*a[j]*a[i+k];
}
printf("%lld",v[1][n]);

    return 0;
}