Cod sursa(job #2203474)

Utilizator DanSDan Teodor Savastre DanS Data 12 mai 2018 14:10:56
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>

using namespace std;

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

const int MAX = 501;
const long long INF = (1ll << 60);
long long n, v[MAX], dp[MAX][MAX];

int main()
{
    in>>n;
    for(int i=0; i<=n; i++)
        in>>v[i];
    for(int col = 2; col <= n; col++)
    {
        int i=1, j = col;

        while(j<=n)
        {
            dp[i][j] = INF;
            for(int k = i+1; k<=j; ++k)
            {
                long long val = v[i-1]*v[k-1]*v[j] + dp[i][k-1]+dp[k][j];
                if(val<dp[i][j]) dp[i][j] = val;
            }
            ++i;++j;
        }
    }
    out<<dp[1][n];
    return 0;
}