Cod sursa(job #543954)

Utilizator c_adryanChitescu Adrian c_adryan Data 28 februarie 2011 20:09:51
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <iostream>
#include <fstream>

using namespace std;

#define MAX 505
int d[MAX],n;
long long m[MAX][MAX];

int main(){
	ifstream in("podm.in");
	ofstream out("podm.out");
	
	in>>n;
	for( int i = 0 ; i <= n ; i++)
			in>>d[i];
	for( int i =1 ; i <= n ; i++)
			m[i][i+1] = d[i-1] * d[i] * d[i+1];

	for( int l = 3 ; l < n ; l ++ ) {
		for( int i = 1 ; i <= n-l ; i++){
				int j = i+l;
				m[i][j] = m[i][i] + m[i+1][j] + d[i-1]*d[i]*d[j];
				for( int k = i +1; k < j ; k++) {
					m[i][j] = min(m[i][j],m[i][k] + m[k+1][j] + d[i-1]*d[k]*d[j]);
	
				}
			}
	out << m[1][n];
	out.close();
	return 0 ;

	}
	
	

}