Cod sursa(job #2324665)

Utilizator mihai50000Mihai-Cristian Popescu mihai50000 Data 21 ianuarie 2019 12:12:59
Problema Parantezare optima de matrici Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>

using namespace std;
	
ifstream in("podm.in");
ofstream out("podm.out");

const long long MAX = 1e18;

long long v[501];
long long op[501][501];
	
main()
{
	int n;
    in >> n;
	
    for(int i = 0; i <= n; i++)
        in >> v[i];
	
    for(int i = 1; i < n; i++)
	
        op[i][i + 1] = v[i - 1] * v[i] * v[i + 1];
	
    for(int i = 3; i <= n; i++)
        for(int j = 1; j <= n - i + 1; j++)
        {
			op[j][i + j - 1] = MAX;
			
            for(int k = j; k < i + j - 1; k++)
				op[j][i + j - 1] = min(op[j][i + j - 1], op[j][k] + op[k + 1][i + j - 1] + v[j - 1] * v[k] * v[j + i - 1]);
        }
	
    out << op[1][n] << '\n';
	
}