Cod sursa(job #649892)

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

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