```{.python}
global chosen
global chosen_size
chosen = []
chosen_size = 0
def near_cartsize(idx, s, things, cartsize, curr):
global chosen
global chosen_size
if idx >= len(things):
if chosen_size < s:
chosen = curr.copy()
chosen_size = s
return
for j in range(idx, len(things)):
if s + things[j] <= cartsize:
curr.append(things[j])
s += things[j]
near_cartsize(j+1, s, things, cartsize, curr)
curr.remove(things[j])
s -= things[j]
else:
if chosen_size < s:
chosen = curr.copy()
chosen_size = s
def choose(things, cartsize):
global chosen
global chosen_size
chosen = []
chosen_size = 0
things.sort(reverse=True)
near_cartsize(1, things[0], things, cartsize, [things[0]], )
return chosen
총 이동: 42665
```
```{.python}
global chosen
global chosen_size
chosen = []
chosen_size = 0
def near_cartsize(idx, s, things, cartsize, curr):
global chosen
global chosen_size
if idx >= len(things):
if chosen_size < s:
chosen = curr.copy()
chosen_size = s
return
for j in range(idx, len(things)):
if s + things[j] <= cartsize:
curr.append(things[j])
s += things[j]
near_cartsize(j+1, s, things, cartsize, curr)
curr.remove(things[j])
s -= things[j]
else:
if chosen_size < s:
chosen = curr.copy()
chosen_size = s
def choose(things, cartsize):
global chosen
global chosen_size
chosen = []
chosen_size = 0
things.sort(reverse=True)
near_cartsize(1, things[0], things, cartsize, [things[0]], )
return chosen
총 이동: 42665
```