Cod sursa(job #813251)

Utilizator Daniela95Stangaciu Daniela Daniela95 Data 15 noiembrie 2012 08:00:25
Problema Parantezare optima de matrici Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#define INF 99999999
using namespace std;

ifstream fin("podm.in");
ofstream fout("podm.out");

void citire();
void pd();
void afisare();

long long int d[100];
long long int cmin[100][100];
long long int minim;
long long int n,nr;

int main()
{
citire();
pd();

return 0;
}

void citire()
{
	int i;
	fin>>n;
	for(i=0;i<=n;i++)
		fin>>d[i];
}

void pd()
{
long long int i,j,k;

for(i=1;i<n;i++)
	cmin[i][i+1]=d[i-1]*d[i]*d[i+1];

for(nr=3;nr<=n;nr++)
	for(i=1;i<=n-nr+1;i++)
		{
		j=i+nr-1;
		cmin[i][j]=INF;
		for(k=i;k<=j-1;k++)
			if(cmin[i][j]>(cmin[i][k]+cmin[k+1][j]+d[i-1]*d[k]*d[j]))
				cmin[i][j]=cmin[i][k]+cmin[k+1][j]+d[i-1]*d[k]*d[j];
		}
fout<<cmin[1][n]<<'\n';
}