Cod sursa(job #1470828)

Utilizator alex_ovidiunituAlex Ovidiu Nitu alex_ovidiunitu Data 12 august 2015 13:44:40
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>
#define N 515
using namespace std;
int n, a[N][N], d[N];
inline int min (int x, int y)
{
    if (x == 0)
        return y;
    return x<y ? x:y ;
}
int main()
{
    int i,j,k;
    fstream f,g;
    f.open("podm.in",ios::in);
    g.open("podm.out",ios::out);
    f>>n;
    for (i=1 ;i<=n+1; i++)
        f>>d[i];
    // dim matrice i => d[i],d[i+1]

    // d==0
    // d==1
    for (i = 1 ; i < n ; i++)
        a[i][i+1] = d[i]*d[i+1]*d[i+2];
    for (j=2 ; j<n ; j++) // inmultesc j+1 matrice
        for (i = 1 ; i<= n-j ; i++)
            for (k = 0 ; k < j ; k++)
                a[i][i+j] = min(a[i][i+j], a[i][i+k] + a[i+k+1][i+j] + d[i]*d[i+k+1]*d[i+j+1]);
    g<<a[1][n];
}