Cod sursa(job #1551098)

Utilizator raulion3331Raul Berari raulion3331 Data 15 decembrie 2015 09:30:56
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

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

int n, x[505][505], r[505][505], d[10005];

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

int main()
{
    citire();
    for(int s = 1; s < n; ++s)
    {
        for(int i = 1; i <= n - s; ++i)
        {
            x[i][i + s] = 10000000000;
            for(int k = i; k < i + s; k++)
            {
                int q = x[i][k] + x[k + 1][i + s] + d[i - 1] * d[k] * d[i + s];
                if(q < x[i][i + s])
                {
                    x[i][i + s] = q;
                    r[i][i + s] = k;
                }
            }
        }
    }
    fout << x[2][n];
    return 0;
}