Задача к ЕГЭ по информатике на тему «Распределение объектов по местам (хранение багажа, парковки, кафе, гостиницы)» №6

В цветочный магазин привезли А упаковок цветов различных видов. Цветы сортируют по В холодильным камерам, вместимость каждой из которых равна С. Холодильные камеры пронумерованы от 1 до В. Фасовщики заполняют холодильные камеры последовательно, начиная с 1-й. Сначала погружают цветы наибольшего объема, стремясь заполнить текущую холодильную камеру до предела, а оставшееся свободное место начиняют цветами наименьшего объема. Цветы были рассортированы по описанному выше алгоритму, часть цветов могла не влезть.

Необходимо определить номер холодильной камеры, в которую погрузили последний товар, а также остаток свободного в ней места.

Входные данные. В первой строке содержится число А — количество упаковок цветов (натуральное число, не привышающее 6000). Во второй строке содержится число В — количество холодильных камер. В третьей строке содержится число С — вместимость холодильной камеры.В следующих А строках содержаться объемы цветов.

Выходные данные. Два числа через пробел — сначала номер холодильной камеры с последним товаром, затем остаток свободного места в ней.

f = open(’26_6__1vv35.txt’)
A = int(f.readline())
B = int(f.readline())
C = int(f.readline())
tovar = sorted(list(map(int, f.readlines())))[::-1]

cameras = [C] * B
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])

Ответ: 400 61
Оцените статью
Я решу все!