(№ 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
сайт Полякова