Cod sursa(job #965953)

Utilizator Al3ks1002Alex Cociorva Al3ks1002 Data 24 iunie 2013 23:16:44
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<cstdio>
#include<algorithm>
using namespace std;
const int NMAX = 505;
const long long INF = 1LL<<62;
int N,i,j,l,k;
long long DP[NMAX][NMAX],D[NMAX];
int main()
{
    freopen("podm.in","r",stdin);
    freopen("podm.out","w",stdout);
    scanf("%d",&N);
    for(i=0;i<=N;i++) scanf("%lld",&D[i]);
    for(i=1;i<=N;i++) for(j=1;j<=N;j++) if(i==j) DP[i][j]=0; else DP[i][j]=INF;
    for(l=2;l<=N;l++)
        for(i=1,j=l;j<=N;i++,j++)
            for(k=i;k<j;k++) DP[i][j]=min(DP[i][j],DP[i][k]+DP[k+1][j]+D[i-1]*D[k]*D[j]);
    printf("%lld\n",DP[1][N]);
    return 0;
}