На складе производится разгрузка упаковок с крупой. Места на складе может быть меньше, чем требуется для распределения всех имеющихся упаковок. Свободное место на складе и масса каждой из упаковок известны.
По заданной информации о массе упаковок и свободном месте на складе, определите максимальное число упаковок, которое можно разместить на этом складе, а также массу самой тяжелой упаковки, при условии, что наибольшее количество упаковок удалось
разместить.
Входные данные.
В первой строке входного файла находятся два числа: S — размер свободного места на складе (натуральное число, не превышающее 100 000) и N — количество всех имеющихся упаковок продуктов (натуральное число, не превышающее 10 000). В следующих N строках находятся массы всех упаковок (все числа натуральные, не превышающие 100), каждое в отдельной строке.
Выходные данные.
Запишите в ответе два числа: сначала наибольшее число упаковок, которое удалось разместить на складе, затем максимальную массу размещенной упаковки, при условии, что размещено наибольшее число упаковок. Если вариантов несколько, выберете тот, при котором будет размещена более тяжелая упаковка.
Пример входного файла:
120 4
70
30
20
50
При таких исходных данных на складе можно разместить максимально 3 упаковки – с массой 30, 50 и 20, либо с массой 70, 30 и 20. Мы выбираем второй вариант, поскольку так за раз мы можем разместить более тяжелую упаковку. Поэтому, ответ для приведенного примера – 3 70.

Информатика с Викторией Ланской, Вариант №2 реального уровня ЕГЭ – задание №26
Решение:
Решение на Python
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
f=open('26 .txt') s,n=map(int,f.readline().split()) a=[int(x) for x in f.readlines()] a.sort() sm=0 i=0 while sm+a[i]<=s: sm+=a[i] i+=1 print(a[i]) print(i) print(sm) print(s) if 89 in a: print(True) |
Ответ: 504 89