Cod sursa(job #1689762)

Utilizator preda.andreiPreda Andrei preda.andrei Data 14 aprilie 2016 15:55:41
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <cstdio>

using namespace std;

long long int matrici[511];
long long int inmultiri[511][511];

int main()
{
    FILE *fin = fopen("podm.in", "r");
    FILE *fout = fopen("podm.out", "w");

    int n;

    fscanf(fin, "%d", &n);
    for(int i = 1; i <= n + 1; ++i){
        fscanf(fin, "%lld", &matrici[i]);
    }

    for(int l = 1; l <= n; ++l){
        for(int i = 1; i <= n + 1 - l ; ++i){
            int j = i + l;
            inmultiri[i][j] = 1LL << 60;
            for(int k = i; k <= j; ++k){
                inmultiri[i][j] = min(inmultiri[i][j], inmultiri[i][k] + inmultiri[k + 1][j] + matrici[i] * matrici[k + 1] * matrici[j + 1]);
            }
        }
    }

    fprintf(fout, "%lld", inmultiri[1][n]);
    return 0;
}