Cod sursa(job #1871580)

Utilizator Firealex2Rotileanu Alexandru Firealex2 Data 7 februarie 2017 15:24:41
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>

using namespace std;

ifstream fi("podm.in");
ofstream fo("podm.out");

#define INF 990009808;

long long int N;
long long int m[501][501];
long long int p[500];   //matrix Ai has dimensions p[i-1]xp[i]

void get_solution();
long long int min(long long int a, long long int b)
{
	return a < b ? a : b;
}

int main()
{
	fi >> N;
	for (long long int i = 0;i <= N;i++)
		fi >> p[i];
	for (long long int i = 1;i <= N;i++)
		m[i][i] = 0;
	for (long long int l = 2;l <= N;l++)
	{
		for (long long int i = 1;i <= N-l+1;i++)
		{
			int j = i + l - 1;
			m[i][j] = INF;
			for (long long int k = i;k < j;k++)
				m[i][j] = min(m[i][j], m[i][k] + m[k + 1][j] + p[i - 1] * p[k] * p[j]);
		}
	}

	fo << m[1][N];
	return 0;
}