import numpy as np
def bag(weight,values,weight_cont):
num = len(weight)
weight.insert(0,0)
values.insert(0,0)
bag = np.zeros((num+1,weight_cont+1),dtype=np.int)
for i in range(1,num+1):
for j in range(1,weight_cont+1):
if j >= weight[i]:
bag[i][j] = max(bag[i-1][j],bag[i-1][j-weight[i]]+values[i])
else:
bag[i][j] = bag[i][j-1]
return bag[-1][-1]
if __name__ == '__main__':
weight = [1, 2, 4, 10, 12]
values = [1200, 1500, 2000, 1300, 2500]
weight_cont = 20
re = bag(weight,values,weight_cont)
print(re)