Cod sursa(job #2278680)

Utilizator vladsirbu23Vlad Sirbu vladsirbu23 Data 8 noiembrie 2018 14:12:06
Problema Parantezare optima de matrici Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("podm.in");
ofstream fout("podm.out");
long long C[510][510],D[510],n;
long long solve(long long i,long long j)
{
    long long k,x;
    x=1000000;
    if(i==j)
        return 0;
    else
    {
        if(C[i][j]!=0)
            return C[i][j];
        else
        {
            for(k=i;k<j;k++)
            {
                x=min(x,solve(i,k)+solve(k+1,j)+D[i]*D[k+1]*D[j+1]);
            }
            C[i][j]=x;

            return x;

        }
    }
}
int main()
{
    long long i,rez;
    fin>>n;
    for(i=1; i<=n+1; i++)
    {
        fin>>D[i];
    }
    rez=solve(1,n);
    fout<<rez;
}