Cod sursa(job #2449703)

Utilizator voyagerSachelarie Bogdan voyager Data 20 august 2019 15:02:21
Problema Problema rucsacului Scor 25
Compilator py Status done
Runda Arhiva educationala Marime 0.52 kb
#!/usr/bin/env python3

import sys
sys.stdout = open('rucsac.out', 'w')

with open('rucsac.in' , 'r') as f:
    pair = lambda: tuple(map(int, f.readline().split()))

    N, G = pair()
    DP, MAX, BEST = [-1] * (G + 1), 0, 0
    DP[0] = 0
    for g, p in (pair() for _ in range(N)):
        for gg in reversed(range(MAX + 1)):
            if gg + g <= G and DP[gg] >= 0:
                MAX = max(MAX, gg + g)
                DP[gg + g] = max(DP[gg + g], DP[gg] + p)
                BEST = max(BEST, DP[gg + g])
    print(BEST)