В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
khokhr
khokhr
14.04.2021 14:02 •  Информатика

решить задачу. Желательно C++ питон, но можно и паскаль. Путешествие

Один торговец собрался в дорогу. У него имеется N предметов (N≤20). Известны вес и стоимость каждого предмета ему заполнить рюкзак предметами так, чтобы суммарная стоимость предметов в рюкзаке была максимальна. Рюкзак может выдержать не более 40 кг веса. Величины веса и стоимости – натуральные числа ≤100.

Формат ввода

В первой строке вводится количество предметов N. Со второй строки через пробел вводится вес и стоимость предмета соответственно.

Формат вывода

Выводятся номера предметов, которые взяли в рюкзак в любом порядке. Выводится вес и стоимость всех предметов в рюкзаке.

Ввод

3

10 14

19 12

12 15

Вывод

3

1

22 29

Ответ:
lehasokol03
lehasokol03
29.12.2021 06:30

Вот код на питоне:

N = int(input())

objects = []

for i in range(N):

   objects.append(list(map(int, input().split(

rezult = []

summ = 0

price = 0

while summ <= 40:

   Max = 0

   index = -1

   for i in objects:

       if i[1] > Max and i[0] + summ <= 40 and not objects.index(i) in rezult:

           Max = i[1]

           index = objects.index(i)

   if index == -1:

       break

   rezult.append(index)

   summ += objects[index][0]

   price += objects[index][1]

for i in rezult:

   print(i + 1)

print(summ, price)

Объяснение:

При необходимости могу пояснить построчно.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?