Cod sursa(job #813175)

Utilizator trifan_gabrielaTrifan Gabriela trifan_gabriela Data 14 noiembrie 2012 23:29:20
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#define INF 6666666

using namespace std;

long long n, d[510], cmin[510][510];

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

int main()
{
	citire();
	pd();
	afisare();
	return 0;
}

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

void pd()
{
	int i, j, k, l, x;
	for(l=0;l<n;l++)
		for(i=1;i+l<=n;i++)		
		{
			j=i+l;
			cmin[i][i]=0;
			cmin[i][i+1]=d[i]*d[i-1]*d[i+1];
			if(i!=j)
			{
				cmin[i][j]=INF;
				for(k=i;k<j;k++)
				{
					x=cmin[i][k]+cmin[k+1][j]+d[i-1]*d[k]*d[j];
					if(x<cmin[i][j])
						cmin[i][j]=x;
				}
			}
		}
}

void afisare()
{
	ofstream fout("podm.out");
	fout<<cmin[1][n]<<'\n';
	fout.close();
}