Cod sursa(job #1997780)

Utilizator LucaSeriSeritan Luca LucaSeri Data 5 iulie 2017 12:37:20
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
const long long inf = 1LL<<62;
#define dim 505
using namespace std;

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

long long a[dim][dim];

int main()
{
    int n;
    f >> n;
    long long v[dim];
    for(int i = 0; i <= n; i++){
        f >> v[i];
    }

    for(int i = 1; i <= n; i++){
        a[i][i] = 0;
    }
    for(int i = 1; i < n; i++){
        a[i][i+1] = v[i-1]*v[i]*v[i+1];
    }
    for(int lung = 2; lung < n; lung++){
        for(int i = 1; i <= n-lung; i++){
            int j = i+lung;
            a[i][j] = inf;
            for(int k = i; k < j; k++){
                a[i][j] = min(a[i][j] , a[i][k] + a[k+1][j] + v[i-1]*v[k]*v[j]);
            }
        }
    }

    g << a[1][n];
    return 0;
}