Cod sursa(job #1105927)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 12 februarie 2014 11:29:03
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include<cstdio>
int n,i,j,k,l,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]);
    }
    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]+v[i]*v[k+1]*v[j+1]);
            }
        }
    }
    fprintf(g,"%lld",d[1][n]);
    fclose(f);
    fclose(g);
    return 0;
}