Cod sursa(job #1820106)

Utilizator DobosDobos Paul Dobos Data 1 decembrie 2016 11:26:28
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <bits/stdc++.h>
#define NMAX 505
#define INF 1e12
using namespace std;

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

typedef long long int var;

var P[NMAX],M[NMAX][NMAX];

int main()
{
    ios :: sync_with_stdio(false);
    fin.tie(NULL);

    int n;

    fin >> n;

    for(int i = 0; i <= n ; i++)
        fin >> P[i];

    for(int step = 1; step < n; step++)
        for(int i = 1,j = 1; i <= n - step; i++){
            j = step + i;
            M[i][j] = INF;
        for(int k = i; k < j; k++){
            M[i][j] = min(M[i][j],M[i][k] + M[k + 1][j] + P[i - 1] * P[k] * P[j]);
        }
    }


    fout << M[1][n];
    return 0;
}