Cod sursa(job #1105923)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 12 februarie 2014 11:27:19
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<cstdio>
int n,i,j,k,l,L[1000],C[1000],v[1000],a,b;
long long s,d[510][510];
FILE *f,*g;
long long minim(long long a,long long b){
    if(a<b)
        return a;
    return b;
}
int main(){
    f=fopen("podm.in","r");
    g=fopen("podm.out","w");
    fscanf(f,"%d",&n);
    for(i=1;i<=n+1;i++){
        fscanf(f,"%d",&v[i]);
    }
    L[1]=v[1];
    for(i=2;i<=n;i++){
        C[i-1]=v[i];
        L[i]=v[i];
    }
    C[n]=v[n+1];
    for(l=1;l<n;l++){
        for(i=1;i+l<=n;i++){
            j=i+l;
            d[i][j]=(1LL<<63)-1;
            for(k=i;k<j;k++){
                d[i][j]=minim(d[i][j],d[i][k]+d[k+1][j]+L[i]*C[k]*C[j]);
            }
        }
    }
    fprintf(g,"%lld",d[1][n]);
    fclose(f);
    fclose(g);
    return 0;
}