n =int(input("Nhap vao n:= "))
A =[x for x inrange(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 inrange(0, n)]# mảng lưu kết quả
V =[x for x inrange(0, n)]# mảng giá trị của đồ vật
W =[x for x inrange(0, n)]# mảng khối lượng của đồ vậtdefarrResualB():#lấy ra mảng cuối cùng được chọnfor i inrange(0, n):
B[i]= A[i]definputArrV(V):# nhập giá trị cho mảng chứa giá trị đồ vậtprint("Nhap vao gia tri cua do vat:")for i inrange(0, n):
V[i]=int(input("Nhap vao gia tri:= "))definputArrW(W):# nhập giá trị cho mảng chứa khối lượng đồ vậtprint("Nhap vao can nang cua do vat:")for i inrange(0, n):
W[i]=int(input("Nhap vao khoi luong cua do vat:= "))deftongW():# tính tổng khối lượng của một mảng đồ vật được chọn
tong =int(0)for i inrange(0, n):if A[i]==1:
tong += W[i]return tong
deftongV():# 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 inrange(0, n):if A[i]==1:
tong += V[i]return tong
defTry(i):global sumMax
for j inrange(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)