Cod sursa(job #1897221)

Utilizator AlexVulpoiuAlexandru Vulpoiu AlexVulpoiu Data 1 martie 2017 11:42:27
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <cstdio>
using namespace std;
int n,i,j,k,d[501];
long long  s,min1,a[501][501];
int main()
{
    freopen("podm.in","r",stdin);
    freopen("podm.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n+1;i++)
    {
        scanf("%d",&d[i]);
        a[i][i]=0;
    }
    for(j=1;j<=n-1;j++)
        for(i=1;i+j<=n;i++)
        {
            if (j==1) a[i][i+1]=d[i]*d[i+1]*d[i+2];
            else
            {
            min1=200000000000000;
            for(k=i;k<i+j;k++)
            {
                s=1LL*a[i][k]+a[k+1][i+j]+d[i]*d[k+1]*d[i+j+1];
                if(s<min1)
                    min1=s;
            }

            a[i][i+j]=min1;
            }
        }
    /*
    for(i=1;i<=n;i++,printf("\n"))
        for(j=1;j<=n;j++)
            printf("%lld ",a[i][j]);
    */
    printf("%lld\n",a[1][n]);
    return 0;
}