Cod sursa(job #648184)

Utilizator worstbyteelev gigel worstbyte Data 13 decembrie 2011 06:48:49
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<fstream>
#include<limits.h>

using namespace std;
#define NM 512
ifstream in("podm.in");
ofstream out("podm.out");

unsigned p[NM][NM],D[NM],n;

int main(){
	int i,j,k,d,poz;
	in>>n;
	for(i=1;i<=n+1;++i)
		in>>D[i];
	for(d=1;d<=n-1;++d)
		for(poz=1;poz<=n-d;++poz){
			i=poz;
			j=d+poz;
			p[i][j]=UINT_MAX;
			unsigned min;
			for(k=i;k<=j-1;++k){
				min=p[i][k]+p[k+1][j]+D[i]*D[k+1]*D[j+1];
				if(min<p[i][j])
					p[i][j]=min;
			}
		}
	
	out<<p[1][n];
	return 0;
}