Cod sursa(job #1643778)

Utilizator alexmalekshahianAlex Malekshahian alexmalekshahian Data 9 martie 2016 20:13:49
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
# include <fstream>
using namespace std;
ifstream fin ("podm.in");
ofstream fout ("podm.out");
long long DP[505][505];
int main()
{
    int n;
    long long d[505];
    fin>>n;
    for (int i=1; i<=n+1; i++)
        fin>>d[i];
    for (int i=1; i<=n-1; i++)
        DP[i][i+1]=d[i]*d[i+1]*d[i+2];
    for (int k=2; k<=n-1; k++)
        for (int i=1; i<=n-k; i++)
        {
            long long Min=1LL<<62;
            for (int j=i; j<=i+k-1; j++)
            {
                Min=min(Min, DP[i][j]+DP[j+1][i+k]+d[i]*d[j+1]*d[i+k+1]);
            }
            DP[i][i+k]=Min;
        }
    fout<<DP[1][n];
    return 0;
}