Cod sursa(job #649905)

Utilizator FIICHSFIICernatHurjuiSchipor FIICHS Data 16 decembrie 2011 21:25:42
Problema Parantezare optima de matrici Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.64 kb
#include "stdio.h"
typedef long long LLong;
const LLong INF=100000000000000000LL;
const int MAXN = 501;
int main(){
	FILE *f;
	LLong M[MAXN][MAXN],d[MAXN+1],n,val;
	int t,i,j,k;
	f = fopen("podm.in","r");
	fscanf(f,"%lld",&n);
	for(i=1;i<=n+1;++i)
		fscanf(f,"%lld",&d[i]);
	fclose(f);

	for(t=1;t<=n-1;t++){
    	for(i=1;i<=n-t;i++){
        	j=i+t;
        	M[i][j]=INF;
        	for(k=i;k<j;k++){
        		val = M[i][k]+M[k+1][j]+d[i]*d[k+1]*d[j+1];
           		if(M[i][j] > val)
            		M[i][j] = val;
            }
        }
    }
	f = fopen("podm.out","w");
	fprintf(f,"%lld",M[1][n]);
	fclose(f);
	return 0;
}