Cod sursa(job #707828)

Utilizator sunt_emoSunt emo sunt_emo Data 6 martie 2012 01:31:58
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
#define Inf 1234567

using namespace std;

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

int min(int a, int b)
{
	if (a < b)
		return a;
	return b;
}

int main()
{
	int a[510][510], nr;
	in >> nr;
	for (int i = 1; i <= nr + 1; i++)
		in >> a[i][i];
	for (int i = 1; i <= nr; i++)
		a[i][i + 1] = 0;
	for (int k = 2; k <= nr ; k++)
		for (int i = 1; i <= nr - k + 1; i++)
		{
			int j = i + k;
			a[i][j] = Inf;
			for (int u = i + 1; u < j; u++) 
				a[i][j] = min(a[i][j],a[i][u] + a[u][j] + a[i][i] * a[u][u] * a[j][j]);
		}
	out << a[1][nr + 1] << endl;
}