Cod sursa(job #941166)

Utilizator forgetHow Si Yu forget Data 18 aprilie 2013 04:08:34
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <fstream>
using namespace std;

int main()
{
	ifstream fin("podm.in");
	ofstream fout("podm.out");
	int n;
	fin >> n;
	int a[n+1];
	for (int i = 0; i <= n; ++i)
		fin >> a[i];

	long long dp[n+1][n+1];
	for (int i = 0; i <= n; ++i)
		for (int j = 0; j <= n; ++j)
			dp[i][j] = 1ll<<60;
	for (int i = 0; i < n; ++i)
		dp[i][i+1] = 0;

	for (int i = n-2; i >= 0; --i)
		for (int j = i+2; j <= n; ++j)
			for (int k = i+1; k < j; ++k)
				dp[i][j] = min(dp[i][j],dp[i][k] + a[i]*a[k]*a[j] + dp[k][j]);
	fout << dp[0][n];
	return 0;
}