Cod sursa(job #2523629)

Utilizator AndreiStanescuAlloys Nokito AndreiStanescu Data 14 ianuarie 2020 15:12:46
Problema Problema rucsacului Scor 25
Compilator py Status done
Runda Arhiva educationala Marime 0.84 kb
f=open("rucsac.in","r")
s=f.readline().replace('\n','').split(' ')
n,G=int(s[0]),int(s[1])
ob=[]
for i in range(n):
    s=f.readline().split(' ')
    ob.append((int(s[0]),int(s[1])))
f.close()

'''sol=[0 for i in range(0,G+1)]

for (g,v) in ob:
    for i in range(G,-1,-1):
        if i-g>=0:
            sol[i]=max(sol[i],sol[i-g]+v)

maxg=0
for i in sol:
    maxg=max(maxg,i)
g=open("rucsac.out","w")
g.write(str(maxg))
g.close()'''

v1=[0 for i in range(0,G+1)]
v2=[0 for i in range(0,G+1)]


for i in range(0,n):
    v2[0]=0
    for j in range(1,G+1):
        if ob[i][0]>j:
            v2[j]=v1[j]
        else:
            v2[j]=max(v1[j],v1[j-ob[i][0]]+ob[i][1])
    for i in range(0,G+1):
        v1[i]=v2[i]

maxg=0
for i in v2:
    maxg=max(maxg,i)
g=open("rucsac.out","w")
g.write(str(maxg))
g.close()