Cod sursa(job #701730)

Utilizator okros_alexandruOkros Alexandru okros_alexandru Data 1 martie 2012 17:34:12
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <fstream>
#include <cstdio>
#define NMAx 512
using namespace std;

int n;
long long M[NMAx][NMAx],D[NMAx];
long long oo=(1LL<<60);

void citire() {
	
	freopen("podm.in","r",stdin);
	
	scanf("%d",&n);
	
	for(int i=0;i<=n;i++)
		scanf("%d",&D[i]);
	
	fclose(stdin);
	
}
void afis() {
	
	freopen("podm.out","w",stdout);
	
	printf("%lld",M[1][n]);
	
	fclose(stdout);
	
}
int main() {
	
	int Dif,i,j,k;
	citire();
	
	for(Dif=1;Dif<=n-1;Dif++)
		for(i=1;i+Dif<=n;i++) {
			j=i+Dif;
			M[i][j]=oo;
			for(k=i;k<j;k++)
				M[i][j]=min(M[i][j],M[i][k]+M[k+1][j]+D[i-1]*D[k]*D[j]);
			}
	
	afis();
	
	return 0;
	
}