| (№ 3754) Предприятие производит оптовую закупку изделий A и Z, на которую выделена определённая сумма денег. У поставщика есть в наличии партии этих изделий различных модификаций по различной цене. На выделенные деньги необходимо приобрести как можно больше изделий Z (независимо от модификации). Закупать можно любую часть каждой партии. Если у поставщика закончатся изделия Z, то на оставшиеся деньги необходимо приобрести как можно больше изделий A. Известна выделенная для закупки сумма, а также количество и цена различных модификаций данных изделий у поставщика. Необходимо определить, сколько будет закуплено изделий A и какая сумма останется неиспользованной. Если возможно несколько вариантов решения (с одинаковым количеством закупленных изделий A), нужно выбрать вариант, при котором оставшаяся сумма максимальна. Входные данные представлены в файле 26-42.txt следующим образом. Первая строка входного файла содержит два целых числа: N – общее количество партий изделий у поставщика и S – сумма выделенных на закупку денег (в рублях). Каждая из следующих N строк описывает одну партию изделия: сначала записана буква A или Z (тип изделия), а затем – два целых числа: цена одного изделия в рублях и количество изделий в партии. Все данные в строках входного файла разделены одним пробелом. В ответе запишите два целых числа: сначала количество закупленных изделий типа A, затем оставшуюся неиспользованной сумму денег. Пример входного файла: 4 1000 A 14 12 Z 30 7 A 40 24 Z 50 15 В данном случае сначала нужно купить изделия Z: 7 изделий по 30 рублей и 15 изделий по 50 рублей. На это будет потрачено 960 рублей. На оставшиеся 40 рублей можно купить 2 изделия A по 14 рублей. Таким образом, всего будет куплено 2 изделия A и останется 12 рублей. В ответе надо записать числа 2 и 12. |
Данная задача решена на языке программирования - Python.
with open('C:/26_3754.txt', 'r') as file:
q = file.readlines()
q = [[str(n) for n in x.split()] for x in q]
n=int(q[0][0])
S=int(q[0][1])
del q[0]
m = 2
a = [[0] * m for i in range(n)]
z=[]
j=0
for i in range(0,n):
if q[i][0]=='A':
a[j][0]=int(q[i][1])
a[j][1]=int(q[i][2])
j=j+1
if q[i][0]=='Z':
z.append(q[i])
ПРОДОЛЖЕНИЕ ПОСЛЕ ОПЛАТЫ
После оплаты Вы сможете скачать программный код.
7354 111
сайт Полякова