Создайте словарь со списком вещей для похода в качестве ключа и их массой в качестве значения. Определите какие вещи влезут в рюкзак передав его максимальную грузоподъёмность. Достаточно вернуть один допустимый вариант. *Верните все возможные варианты комплектации рюкзака.
things = dict(палатка = 10, вода = 3, спальник = 5, аптечка = 1, еда = 8, посуда = 4, коврик = 1, одежда = 2) weight_limit = int(input('Максимальный вес рюкзака: ')) list_things = list(things.keys()) res, temp_list, current_weight = set(), [], 0 for i in range((2**len(things))): sample = (list(bin(i)[2:].zfill(len(things)))) for n in range(len(sample)): if sample[n] == '1': temp_list.append(list_things[n]) current_weight += things[list_things[n]] if current_weight > weight_limit: temp_list.pop() break res.add(' '.join(temp_list)) temp_list, current_weight = [], 0 print('Все варианты комплектации рюкзака:') for i in sorted(res): print(i)
