Cod sursa(job #2810526)

Utilizator andrei_blanaruAndrei Blanaru andrei_blanaru Data 29 noiembrie 2021 16:32:16
Problema Energii Scor 35
Compilator py Status done
Runda Arhiva de probleme Marime 0.8 kb
#!/usr/bin/python3

inf = 5000 * 10000

with open('energii.in', 'r') as fin:
    generatoare = int(fin.readline())
    energie_necesara = int(fin.readline())
    cost_total = [inf for i in range(energie_necesara+1)]
    cost_total[0] = 0
    for i in range(generatoare):
        energie, cost = (int(x) for x in fin.readline().split())
        cost_nou = min(cost_total[-energie-1:-1]) + cost
        cost_total[-1] = min(cost_total[-1], cost_nou)
        for tinta in range(energie_necesara-1, energie-1, -1):
            cost_nou = cost_total[tinta - energie] + cost
            cost_total[tinta] = min(cost_total[tinta], cost_nou)
        print(cost_total)

with open('energii.out', 'w') as fout:
    raspuns = cost_total[energie_necesara]
    if raspuns == inf:
        raspuns = -1
    print(raspuns, file=fout)