Cod sursa(job #1773416)

Utilizator stefii_predaStefania Preda stefii_preda Data 7 octombrie 2016 20:27:58
Problema Parantezare optima de matrici Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#include <algorithm>
#define N 505
#define MAX 110000000

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

long long best[N][N];
int d[N];

int main()
{
    int n, i, j, p, k;
    in>>n;
    for(i = 0; i <= n; i++)
        in>>d[i];
    for(i = 1; i < n; i++)
        best[i][i+1] = d[i-1]* d[i]* d[i+1];

    for(p = 2; p <= n-1; p++)
        for(i = 1; i <= n-p; i++)
        {
            j = i+p;
            best[i][j] = MAX;
            for(k = i; k <= j-1; k++)
               best[i][j] = min(best[i][j], best[i][k] + best[k+1][j] + d[i-1]*d[k]*d[j]);
        }
    out<<best[1][n];
    return 0;
}