В магазине продаётся N товаров нескольких артикулов. Товары одного артикула имеют одинаковую цену. Учёт товаров ведётся поштучно, для каждой единицы товара известен её текущий статус (продана или нет). Товары разделены на две категории: дорогие и дешёвые. Дорогими считаются товары, цена на которые превышает среднюю цену (среднее арифметическое) всех товаров в базе данных магазина без учёта их текущего статуса. Остальные товары считаются дешёвыми.
Лидером продаж называется товар с таким артикулом, наибольшее количество единиц которого продано. Лидер продаж выбирается среди дорогих товаров, а если продано одинаковое количество дорогих товаров с разными артикулами, лидером выбирается товар с наибольшей ценой. Если и таких товаров несколько, лидер продаж — тот из них, которого осталось меньше всего.
Найдите суммарную выручку магазина от реализации товара — лидера продаж, а также оставшееся количество товара с этим артикулом.
Входные данные
В первой строке входного файла находится число N — количество товаров в базе данных магазина (натуральное число, не превышающее 10 000). В каждой из следующих N строк находится три числа, разделённых пробелом: артикул товара (натуральное число, не превышающее 100 000), его цена (натуральное число, не превышающее 10 000) и статус (0, если товар уже продан, и 1, если ещё не продан).
Выходные данные
Два числа: сумма выручки от реализации товара — лидера продаж, а также количество товара с этим артикулом, оставшееся в магазине.
Типовой пример организации данных во входном файле
8
10 100 1
3 10 0
10 100 0
2 10 1
10 100 0
3 10 1
11 100 0
1 200 0
При таких исходных данных дорогими являются товары стоимостью 100 и 200 рублей. Больше всего было продано товара с артикулом 10. В продаже остался один такой товар. Условию задачи удовлетворяет ответ: 200 1.
Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.
Ответ:
Откроем файл с помощью электронной таблицы.
Посчитаем среднюю цену товаров. Для этого в ячейке В2 введем формулу =СРЗНАЧ(B2:B9993)
Разделим товары на дорогие и дешевые. Для этого в ячейку D2 введем формулу =ЕСЛИ(B2>$B$1;1;0) и скопируем до конца списка.
Получим таблицу:
Включим фильтры и оставим только дорогие товары значении которых в столбце D равно 1.
Скопируем получившуюся таблицу на отдельный лист и озаглавим столбцы. Столбец А - артикул, столбец B - цена, столбец D - продажа.
Получим таблицу:
Добавим сводную таблицу через меню Вставка-Сводная таблица.
Посчитаем количество проданных товаров. Для этого в ячейке D3 введем формулу =B3-C3 и скопируем до конца списка. Добавим цену товара, для этого в ячейку E3 введем формулу =ВПР(A3;$'1_26'.A:D;2;0)и скопируем до конца списка.
Отсортируем таблицу по столбцу D по убыванию. Так мы узнаем товары, которых было продано больше всего. Получим таблицу:
Больше всего продано товаров с артикулами 37134, 46481 и 51786. Лидером продаж считается товар, которого осталось меньше всего на складе. Такой товар по артикулом 46481, товаров оставшихся на складе 36. (Товара с артикулом 37134 не осталось, поэтому его нельзя сделать лидером продаж, так как такой товар больше невозможно продать). Это ответ на второй вопрос.
Для ответа на первый вопрос введём формулу =D3*E3 и получи ответ - 43656.
Ответ: 43656 и 36.
Приведём решение Юрия Красильникова на языке Python.
f=open('1_26.txt')
n=int(f.readline())
m=0
tov=[]
for s in f:
art,cena,status=map(int,s.split())
m+=cena
tov.append([art,cena,status])
sred=m/n
tovdic={}
for art,cena,status in tov:
if cena > sred:
if art not in tovdic: tovdic[art]=[cena,0,0] # цена, продано, осталось
if status==0: tovdic[art][1]+=1
else: tovdic[art][2]+=1
lider=max(tovdic.values(),key=lambda x: [x[1],x[0],-x[2]])
print(lider[0]*lider[1],lider[2])

