Cod sursa(job #448588)

Utilizator AndreiRSStatescu Andrei Rares AndreiRS Data 4 mai 2010 08:39:05
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>
#define DIM 502
#define INF 2000000001

FILE *f1 = fopen("podm.in","r");
FILE *f2 = fopen("podm.out","w");

long long a[DIM][DIM];
long long v[DIM];

int n,x;
int i,j,k,L;

int main(){
	
	fscanf(f1,"%d",&n);
	for(i=1; i<=n+1; i++)
		fscanf(f1,"%d",&v[i]);
	
	for(L=2; L<=n; L++)
		for(i=1; i<=n-L+1; i++){
			j = L + i - 1;
			a[i][j] = INF;
			
			for(k=i; k<j; k++){
				x = a[i][k] + a[k+1][j] + v[i] * v[k+1] * v[j+1];
				if(a[i][j] > x)
					a[i][j] = x;
			}	
		}
	
	fprintf(f2,"%d",a[1][n]);
	
	fclose(f1);
	fclose(f2);
	
	return 0;
}