Ich habe versucht, ein einfaches 0-1-Rucksack-Problem zu schreiben, aber es gibt einen Fehler. Hilfe wäre willkommen.Mein Rucksack Code gibt falsche Ausgabe?
T = int(input().strip())
def knapsack(n,k,ar):
if n==0 or k==0:
return 0
elif ar[n-1]>k:
return knapsack(n-1,k,ar)
else:
return max(knapsack(n-1,k,ar),ar[n-1] + knapsack(n-1,k-ar[n-1],ar))
for t in range(T):
a = input().strip()
n,k = int(a[0]),int(a[2])
ar = [int(i) for i in input().strip().split(' ')]
print(knapsack(n,k,ar))
lief ich diesen wieder eine Eingabe von
2
3 12
1 6 9
5 9
3 4 4 4 8
und ich falsch Ausgang erhalte? Ich kann keinen Fehler finden. Vielen Dank im Voraus
Ausgabe
1
8