Cod sursa(job #483903)

Utilizator Cosmin1490Balan Radu Cosmin Cosmin1490 Data 10 septembrie 2010 17:37:45
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>

#define NMAX 505
#define INF (1LL<<63)-1

using namespace std;

//Variabile Globale:

int N;
long long A[NMAX];
long long M[NMAX][NMAX];

//Citire:
void citire()
{
	fstream fin("podm.in",ios::in);
	fin>>N;
	
	for(register int i=0;i<=N;i++)
		fin>>A[i];

	fin.close();
}
//Afisare:
void afisare()
{
	fstream fout("podm.out",ios::out);

	fout<<M[1][N]<<"\n";

	fout.close();
}

//Calculare:
void pd()
{
	for(int i=N;i>=1;i--)
		for(int j=i+1;j<=N;j++)
		{
			M[i][j]=INF;
			for(int k=i;k<j;k++)
			{
				M[i][j]=min(M[i][j],M[i][k]+M[k+1][j]+A[i-1]*A[k]*A[j]);
			}
		}
}

//Main:
int main(int arg,char* argv[])
{
	citire();
	
	pd();
	
	afisare();
}