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)