Cod sursa(job #2795363)

Utilizator rARES_4Popa Rares rARES_4 Data 6 noiembrie 2021 11:52:03
Problema Parantezare optima de matrici Scor 70
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("podm.in");
ofstream g ("podm.out");
int n;
int dim[501],dp[501][501];
int main()
{
    f >> n;
    for(int i = 1; i<=n+1; i++)
        f >> dim[i];
    int dif = 1,i,j;

    while(dif<=n-1)
    {
        i = 1;
        j = i+dif;
        while(j<=n)
        {
            for(int k = i; k<=j-1; k++)
            {
                if(dp[i][j]==0)
                {
                    dp[i][j] = dp[i][k] + dp[k+1][j] + (dim[k+1]*dim[i]*dim[j+1]);
                }
                else
                {
                    dp[i][j] = min(dp[i][j],dp[i][k] + dp[k+1][j] + (dim[k+1]*dim[i]*dim[j+1]));
                }
            }
            i++;
            j++;
        }
        dif++;
    }
    g<<dp[1][n];
}