Cod sursa(job #2227761)

Utilizator SweetHumanAvram Gheorghe SweetHuman Data 1 august 2018 17:47:56
Problema Parantezare optima de matrici Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
///

#include <iostream>
#include <fstream>
#define MAXN 505
using namespace std;

ifstream f1("podm.in");
ofstream f2("podm.out");
long long n,d1;
long long d[MAXN];
long long matrix[MAXN][MAXN];
int main()
{
    f1>>n;
    for(int i=1;i<=n+1;i++)
        f1>>d[i];
    int i;
    for(int d1=1;d1<n;d1++)
    {
        for(int j=d1+1;j<=n;j++)
        {
            i=j-d1;
            long long mini=LONG_LONG_MAX;
            long long temp;
            for(int k=i;k<=j-1;k++)
            {
                temp=matrix[i][k]+matrix[k+1][j]+(d[i]*d[k+1]*d[j+1]);
                if(temp<mini) mini=temp;
            }
            matrix[i][j]=mini;
        }
    }
    cout<<matrix[1][n];
    return 0;
}