Cod sursa(job #399672)

Utilizator BaduBadu Badu Badu Data 20 februarie 2010 21:43:36
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<fstream>
using namespace std;
int D[505],n,m;
int C[501][501];

int main(){
	
	ifstream f("podm.in");
	ofstream g("podm.out");
	
	f>>n;int i,j,k;
	for(i=1;i<=n+1;i++) f>>D[i];
	
	for(i=1;i<n;i++)C[i][i+1] = D[i]*D[i+1]*D[i+2];
	
	for( i=2; i<n ; i++)
		for(j=1;j<=n-i;j++){
			C[j][i+j] = 1000000000;
			for(k = j; k<= i+j-1;k++){
				m = C[j][k] + C[k+1][i+j] + D[j]*D[k+1]*D[i+j+1];
				if( m < C[j][j+i] ) C[j][j+i] = m;
			}
		}
	
	g<<C[1][n];
	return 0;
}