Cod sursa(job #1685142)

Utilizator razvandRazvan Dumitru razvand Data 11 aprilie 2016 15:38:26
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <limits.h>
#define I j+1
#define J i+j
#define MAX 505

using namespace std;

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

int o[MAX][MAX];
int c[MAX];

int main() {

    int n;
    in >> n;

    for(int i = 1; i <= n+1; i++)
        in >> c[i];

    int mi;

    for(int i = 2; i <= n; i++) {

        for(int j = 0; j+i <= n; j++) {

            mi = INT_MAX;

            for(int k = I; k < J; k++) {

                mi = min(mi, o[I][k]+o[k+1][J] + c[I]*c[k+1]*c[J+1]);
                //cout << I << " " << k << " " << J << '\n';

            }

            o[I][J] = mi;

            //cout << I << " " << J << " " << o[I][J] << '\n';

        }

    }

    out << o[1][n];

    return 0;
}