26.06 Распределение объектов по местам (хранение багажа, парковки, кафе, гостиницы)
Ошибка.
Попробуйте повторить позже
В цветочный магазин привезли А упаковок цветов различных видов. Цветы сортируют по В холодильным камерам, вместимость каждой из которых равна С. Холодильные камеры пронумерованы от 1 до В. Фасовщики заполняют холодильные камеры последовательно, начиная с 1-й. Сначала погружают цветы наибольшего объема, стремясь заполнить текущую холодильную камеру до предела, а оставшееся свободное место начиняют цветами наименьшего объема.
Необходимо определить номер холодильной камеры, в которую погрузили последний товар, а также остаток свободного в ней места.
Входные данные. В первой строке содержится число А - количество упаковок цветов (натуральное число, не привышающее 6000). Во второй строке содержится число В - количество холодильных камер. В третьей строке содержится число С - вместимость холодильной камеры.В следующих А строках содержаться объемы цветов.
Выходные данные. Два числа - сначала номер холодильной камеры с последним товаром, затем остаток свободного места в ней.
f = open(’26_14__1vv3g.txt’) A = int(f.readline()) # Считываем количество упаковок цветов B = int(f.readline()) # Считываем количество холодильных камер C = int(f.readline()) # Считываем вместимость холодильных камер tovar = sorted(list(map(int, f.readlines())))[::-1] # Считываем объемы цветов и сортируем по убыванию cameras = [C] * B # Создаем B камер по C вместимости каждый last = 0 # Номер камеры, в которой положили последнюю упаковку for c in range(len(cameras)): # Проходимся по холодильным камерам for t in range(len(tovar)): # Проходимся по упаковкам цветов if cameras[c] >= tovar[t]: # Если свободное место позволяет положить текущую упаковку cameras[c] -= tovar[t] # То кладем упаковку и записываем оставшееся место в камере tovar[t] = 0 # Текущую упаковку обнуляем last = c + 1 else: break # Переходим к следующей камере for t in range(len(tovar)): if cameras[c] >= tovar[len(tovar) - t - 1]: # Проверяем, можем ли дополнить камеру упаковками маленького объема cameras[c] -= tovar[len(tovar) - t - 1] # Если да, то перезаписываем оставшееся место if tovar[len(tovar) - t - 1] != 0: # Уложенную упаковку обнуляем tovar[len(tovar) - t - 1] = 0 last = c + 1 print(last, cameras[last - 1])
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!