DAA 3
# 0/1 Knapsack using Dynamic Programming.
n = int(input("Enter number of items: "))
v = []
w = []
for i in range(n):
v.append(int(input(f"Value {i+1}: ")))
w.append(int(input(f"Weight {i+1}: ")))
cap = int(input("Enter capacity: "))
dp = [[0]*(cap+1) for _ in range(n+1)]
for i in range(1, n+1):
for j in range(1, cap+1):
if w[i-1] <= j:
dp[i][j] = max(v[i-1] + dp[i-1][j-w[i-1]], dp[i-1][j])
else:
dp[i][j] = dp[i-1][j]
print("Maximum value =", dp[n][cap])
Comments
Post a Comment