Cod sursa(job #2174204)

Utilizator bogdanmarin69Bogdan Marin bogdanmarin69 Data 16 martie 2018 11:13:49
Problema Parantezare optima de matrici Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>

using namespace std;
ifstream cin("podm.in");
ofstream cout("podm.out");
const int MAX = 503;
const long long INF = (1ll << 62);
long long dp[MAX][MAX];
long long n, d[MAX];
int main()
{
    cin >> n;
    for(int i = 0; i <= n; ++i) {
        cin >> d[i];
    }
    for(int i = 1; i < n; ++i) {
        int lin = 1, col = i + 1;
        while(col <= n) {
            dp[lin][col] = INF;
            for(int k = lin; k < col; ++k)
                dp[lin][col] = min(dp[lin][col], dp[lin][k] + dp[k + 1][col] + 1ll * d[lin - 1]* d[k] * d[col]);

            ++lin;
            ++col;
        }
    }
    cout << dp[1][n];
    return 0;
}