n = int(input("Nhap vao n:= "))
A = [x for x in range(0, n)] # mảng chứa lựa chọn
sumMax = int(0)
WMAX = int(input("Nhap vao khoi luong toi da co the lay duoc:= "))
B = [x for x in range(0, n)] # mảng lưu kết quả
V = [x for x in range(0, n)] # mảng giá trị của đồ vật
W = [x for x in range(0, n)] # mảng khối lượng của đồ vật
def arrResualB():
#lấy ra mảng cuối cùng được chọn
for i in range(0, n):
B[i] = A[i]
def inputArrV(V):
# nhập giá trị cho mảng chứa giá trị đồ vật
print("Nhap vao gia tri cua do vat:")
for i in range(0, n):
V[i] = int(input("Nhap vao gia tri:= "))
def inputArrW(W):
# nhập giá trị cho mảng chứa khối lượng đồ vật
print("Nhap vao can nang cua do vat:")
for i in range(0, n):
W[i] = int(input("Nhap vao khoi luong cua do vat:= "))
def tongW():
# tính tổng khối lượng của một mảng đồ vật được chọn
tong = int(0)
for i in range(0, n):
if A[i] == 1:
tong += W[i]
return tong
def tongV():
# tính tổng giá trị của một mảng đồ vật được chọn
tong = int(0)
if tongW() <= WMAX:
for i in range(0, n):
if A[i] == 1:
tong += V[i]
return tong
def Try(i):
global sumMax
for j in range(0, 2):
A[i] = j
if i == n - 1:
sumOfA = tongV()
if sumMax <= sumOfA <= WMAX:
sumMax = sumOfA
arrResualB()
else:
Try(i + 1)
inputArrV(V)
inputArrW(W)
Try(0)
print(sumMax, B)