Cod sursa(job #2320429)

Utilizator VadimCCurca Vadim VadimC Data 14 ianuarie 2019 19:04:28
Problema Parantezare optima de matrici Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>

using namespace std;

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

#define NMax 510
long long inf = (1e18);

int n;
int d[NMax];
long long c[NMax][NMax];

void citire();
void rezolvare();

int main(){
	citire();
	rezolvare();
}

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

void rezolvare(){
	int l, i, j, k;
	long long p;
	
	for(i = 1; i <= n; i++)
		for(j = 1; j <= n; j++)
			if(i != j) c[i][j] = inf;
	
	for(l = 2; l <= n; l++)
		for(i = 1; i <= n - l + 1; i++){
			j = i + l - 1;
			for(k = i; k < j; k++){
				p = 1LL * (d[i - 1] * d[k] * d[j]) + c[i][k] + c[k + 1][j];
				if(c[i][j] > p) c[i][j] = p;
			}
				
		}
	
	fout << c[1][n];
}