Cod sursa(job #2290177)

Utilizator AcuasPopescu Nicolae-Aurelian Acuas Data 25 noiembrie 2018 21:52:58
Problema Parantezare optima de matrici Scor 60
Compilator py Status done
Runda Arhiva educationala Marime 0.74 kb
INF = 1000000000


def read():
    with open("podm.in", "r") as fin:
        n = int(fin.readline())
        d = [0]
        for x in fin.readline().split():
            d.append(int(x))
        fin.close()
    return n, d


def main():
    n, d = read()
    cost = [[]] * (n + 1)

    for i in range(0, n + 1):
        cost[i] = [0] * (n + 1)

    for j in range(2, n + 1):
        for i in range(j - 1, 0, -1):
            min_aux = INF
            for k in range(i, j):
                min_aux = min(min_aux, cost[i][k] + cost[k + 1][j] + d[i] * d[k + 1] * d[j + 1])
            cost[i][j] = min_aux

    with open("podm.out", "w") as fout:
        fout.write(str(cost[1][n]))
        fout.close()

    return 0


if __name__ == '__main__':
    main()