babiron
06.03.2020 09:31

Можете объяснить код к задачи по строкам. адача №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))

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Vika556965
06.02.2021 08:34

1)

s = 0

for k in range(-5,11):

s = s + 2 * k

print(s)

Прогоняются числа [-5;11)

s = 0 + 2 * -5 = -10

s = -10 + 2 * -4 = -18

s = -18 + 2 * -3 = -24

s = -24 + 2 * -2 = -28

s = -28 + 2 * -1 = -30

s = -30 + 2 * 0 = -30

s = -30 + 2 * 1 = -28

s = -28 + 2 * 2 = -24

s = -24 + 2 * 3 = -18

s = -18 + 2 * 4 = -10

s = -10 + 2 * 5 = 0

s = 0 + 2 * 6 = 12

s = 12 + 2 * 7 = 26

s = 26 + 2 * 8 = 42

s = 42 + 2 * 9 = 60

s = 60 + 2 * 10 = 80

ответ: 80

2)

s = 1

for k in range(1,30):

s = (k – 5) * s

print(s)

s = (1 - 5) * 1 = -4

s = (2 - 5) * -4 = 12

s = (3 - 5) * 12 = -24

s = (4 - 5) * -24 = 24

s = (5 - 5) * 24 = 0

s = (6 - 5) * 0 = 0

s = (7 - 5) * 0 = 0

s = (8 - 5) * 0 = 0

s = (9 - 5) * 0 = 0

s = (10 - 5) * 0 = 0

s = (11 - 5) * 0 = 0

s = (12 - 5) * 0 = 0

s = (13 - 5) * 0 = 0

s = (14 - 5) * 0 = 0

s = (15 - 5) * 0 = 0

s = (16 - 5) * 0 = 0

s = (17 - 5) * 0 = 0

s = (18 - 5) * 0 = 0

s = (19 - 5) * 0 = 0

s = (20 - 5) * 0 = 0

s = (21 - 5) * 0 = 0

s = (22 - 5) * 0 = 0

s = (23 - 5) * 0 = 0

s = (24 - 5) * 0 = 0

s = (25 - 5) * 0 = 0

s = (26 - 5) * 0 = 0

s = (27 - 5) * 0 = 0

s = (28 - 5) * 0 = 0

s = (29 - 5) * 0 = 0

ответ: 0

3)

x = 1

while x <= 10:

print(x)

x = x+2

Тут просто. Счетчик идет от одного, а цикл прерывается на 10. Тут никак не может быть четное число. А самое близкое нечетное к 10 - 9.

ответ: 9

4)

x = 1

while x <= 10:

print(x)

x = x + 1

else:

print("Готово")

Тут почти тоже самое. Только тут уже дойдет до 10 и напишет еще "готово"

ответ: 10 Готово.

0,0(0 оценок)
Ответ:
nikitame6
30.11.2021 00:29

Исключительно важно использовать язык блок-схем при разработке алгоритма решения задачи. Решение одной и той же задачи может быть реализовано с различных алгоритмов, отличающихся друг от друга как по времени счета и объему вычислений, так и по своей сложности. Запись этих алгоритмов с блок-схем позволяет сравнивать их, выбирать наилучший алгоритм, упрощать, находить и устранять ошибки.

Отказ от языка блок-схем при разработке алгоритма и разработка алгоритма сразу на языке программирования приводит к значительным потерям времени, к выбору неоптимального алгоритма. Поэтому необходимо изначально разработать алгоритм решения задачи на языке блок-схем, после чего алгоритм перевести на язык программирования.

При разработке алгоритма сложной задачи используется метод пошаговой детализации. На первом шаге продумывается общая структура алгоритма без детальной проработки отдельных его частей. Блоки, требующие детализации, обводятся пунктирной линией и на последующих шагах разработки алгоритма продумываются и детализируются.

В процессе разработки алгоритма решения задачи можно выделить следующие этапы:

Этап 1 . Математическое описание решения задачи.

Этап 2 . Определение входных и выходных данных.

Этап 3 . Разработка алгоритма решения задачи.

Объяснение:

ели ели написал

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