Задание 26. Информатика. ЕГЭ. Статград. 04.03.2025

Просмотры: 209
Изменено: 7 марта 2025

На складе предприятия имеются заготовки двух видов: \(A\) и \(B,\) у каждой заготовки есть размер, измеряемый в миллиметрах. Для производства одного изделия необходима одна заготовка типа \(A\) и одна заготовка типа \(B,\) при этом разность размеров этих заготовок должна быть не более \(20\) мм. Прибыль от продажи полученного изделия численно равна сумме размеров использованных заготовок.

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

Входные данные

Первая строка входного файла содержит целое число \(N\) — общее количество изделий на складе. Каждая из следующих \(N\) строк содержит букву \(A\) или \(B,\) определяющую тип заготовки, и целое число — размер этой заготовки. В ответе запишите два целых числа: сначала количество произведённых изделий, затем полученную прибыль.

Файл с данными

Решение:

Python


base = ''

det_A = []
det_B = []

fd = open(base + '26.txt')
N = int(fd.readline().strip())

for _ in range(N):
    tmp = fd.readline().split()
    if tmp[0] == 'A':
        det_A.append(int(tmp[1]))
    else:
        det_B.append(int(tmp[1]))

det_A.sort(reverse=True)
det_B.sort(reverse=True)
pa, pb = 0, 0
profit, goods = 0, 0
while pa < len(det_A) and pb < len(det_B):
    if abs(det_A[pa] - det_B[pb]) > 20:
        if det_A[pa] > det_B[pb]:
            pa += 1
        else:
            pb += 1
    else:
        profit += det_A[pa] + det_B[pb]
        goods += 1
        pa += 1
        pb += 1
print(goods, profit)

Ответ: \(5669 \,\, 29011899\)