Cod sursa(job #2348390)

Utilizator AndreiSorin26012001Cirpici Andrei Sorin AndreiSorin26012001 Data 19 februarie 2019 17:51:42
Problema Parantezare optima de matrici Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <bits/stdc++.h>
#define DIM 505
#define INF 100005;
using namespace std;

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

int n;
int sizes[DIM];
int solution[DIM][DIM];

int main()
{
    in>>n;
    for( int i = 1; i <= n + 1; i++ )
        in>>sizes[i];

    for( int i = 1; i <= n; i++ )
        solution[i][i + 1] = 0;

    for( int length = 2; length <= n; length++ )
        for( int left = 1; left + length - 1 <= n; left++ )
        {
                int right = left + length - 1;
                solution[left][right] = INF;

                for( int k = left; k < right; k++ )
                    solution[left][right] = min( solution[left][right], solution[left][k] + solution[k + 1][right] + sizes[left]*sizes[right + 1]*sizes[k + 1] );
        }

    out<<solution[1][n];

    return 0;
}