Cod sursa(job #2227771)

Utilizator elenaisaiaElena Isaia elenaisaia Data 1 august 2018 17:55:20
Problema Parantezare optima de matrici Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>

using namespace std;

long long n;
long long dp[510][510],a[510];

void fct()
{
    long long x,y;
    for(long long i=1;i<=n;i++)
        for(long long j=1;j+1<=n;j++)
        {
            x=j;
            y=i+j;
            long long mini=(1LL<<60);
            for(long long k=x;k<y;k++)
                if(mini>dp[x][k]+dp[k+1][y]+a[x]*a[k+1]*a[y+1])
                    mini=dp[x][k]+dp[k+1][y]+a[x]*a[k+1]*a[y+1];
            dp[x][y]=mini;
        }
}

int main()
{
    ifstream fin("podm.in");
    fin>>n;
    for(int i=1;i<=n+1;i++)
        fin>>a[i];
    fct();
    ofstream fout("podm.out");
    fout<<dp[1][n];
    return 0;
}