Cod sursa(job #584783)

Utilizator david95szabo david emanuel david95 Data 26 aprilie 2011 18:25:45
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <fstream> 
#include <algorithm> 
#define DIM 505 
#define inf 99999999 
using namespace std; 
ifstream fin("podm.in"); 
ofstream fout("podm.out");  
long long b[DIM][DIM],d[DIM]; 
int n;  
int main() 
{     
	fin>>n;     
	for ( int i = 0; i <= n; i++)
		fin >> d[i];     
for ( int i = 1; i < n; i++ ) 
b[i][i+1] = d[i] * d[i-1] * d[i+1]; 
	for ( int w = 2; w <= n - 1; w++ ) 
		for ( int i = 1; i <= n - w; i++)
	{ 
		int j = i + w; 
		b[i][j] = inf;
		for ( int k = i; k < j; k++ ) 
			b[i][j] = min ( b[i][j], b[i][k] + b[k + 1][j] + d[i - 1] * d[k] * d[j] ); 
	} 
	fout<<b[1][n]<<"\n";     
	return 0; 
}