Можете объяснить код к задачи по строкам. адача №111159. Создание архива
Системный администратор вспомнил, что давно не делал архива пользовательских файлов.Однако, объем диска, куда он может поместить архив, может быть меньше чем суммарный объем архивируемых файлов.
Известно, какой объем занимают файлы каждого пользователя.
Напишите программу, которая по заданной информации о пользователях и свободному объему на архивном диске определит максимальное число пользователей, чьи данные можно поместить в архив, при этом используя свободное место как можно более полно.
Входные данные
Программа получает на вход в одной строке число
S
– размер свободного места на диске (натуральное, не превышает 10000), и число
N
– количество пользователей (натуральное, не превышает 100), после этого идет
N
чисел - объем данных каждого пользователя (натуральное, не превышает 1000), записанных каждое в отдельной строке.
Выходные данные
Выведите наибольшее количество пользователей, чьи данные могут быть помешены в архив.
Примеры
входные данные
100 2
200
50
выходные данные
1
входные данные m, b = map(int, input().split())
A = []
B = []
z = 0
sum = 0
while z < b:
A.append(int(input()))
z = z + 1
A = sorted(A)
for i in range(len(A)):
if sum < m:
B.append(A[i])
sum += A[i]
if sum > m:
B.pop()
print(len(B))