ALEXMATH

Информатика. ЕГЭ

Задания для подготовки

Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников

Перейти к заданиям

Задание 26. Информатика. ЕГЭ 2024. Резерв. 19.06.2024

Просмотры: 4207
Изменено: 1 февраля 2025

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

Лидером продаж называется товар с таким артикулом, наибольшее количество единиц которого продано. Лидер продаж выбирается среди дорогих товаров, а если продано одинаковое количество дорогих товаров с разными артикулами, лидером выбирается товар с наибольшей ценой. Если и таких товаров несколько, либо продаж — то из них, которого осталось меньше всего.

Найдите суммарную стоимость оставшихся единиц товара-лидера продаж, а также артикул этого товара.

Описание входных данных
В первой строке входного файла находится число \(N\) — количество товаров в базе данных магазина. (натуральное число, не превышающее \(10~000\)). В каждой из следующих \(N\) строках находятся три числа, разделённых пробелом: артикул товара (натуральное число до \(100~000\)), его цена (натуральное число до \(10~000\)) и статус (\(0\), если товар уже продан, и \(1\), если ещё не продан).

Выходные данные
Два числа: суммарная стоимость оставшихся единиц товара — лидера продаж, а также артикул этого товара.

Типовой пример организации данных в файле:
\(8\)
\(10 \,\, 100 \,\, 1\)
\(3 \,\, 10 \,\, 0\)
\(10 \,\, 100 \,\, 0\)
\(2 \,\, 20 \,\, 1\)
\(10 \,\, 100 \,\, 0\)
\(3 \,\, 10 \,\, 1\)
\(11 \,\, 100 \,\, 0\)
\(1 \,\, 200 \,\, \)
При таких исходных данных дорогими являются товары стоимостью \(100\) и \(200\) рублей. Больше всего продано товара с артикулом \(10\). В продаже остался один такой товар.
Условию задачи удовлетворяет ответ: \(100 \,\, 10\)

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

Решение:

Python


f = open('26.txt')

N = int(f.readline())

goods = {}
p = 0

for s in f:
    art, price, sell = [int(x) for x in s.split()]
    p += price
    goods[art] = goods.get(art, [price, 0, 0])
    if sell == 0:
        goods[art][1] += 1
    else:
        goods[art][2] += 1

avg_price = p / N

exp_goods = {}

for k,v in goods.items():
    if v[0] > avg_price:
        exp_goods[k] = v


tmp = sorted(exp_goods.items(), key=lambda x: x[1][1], reverse=True)
sold = tmp[0][1][1]

most_sold = {}
max_price = 0

for i in tmp:
    if i[1][1] == sold:
        most_sold[i[0]] = i[1]
        max_price = max(i[1][0], max_price)

most_sold_max_price = {}
for k, v in most_sold.items():
    if v[0] == max_price:
        most_sold_max_price[k] = v

msmp = sorted(most_sold_max_price.items(), key=lambda x: x[1][2])

print(msmp[0][1][0] * msmp[0][1][2], msmp[0][0])

Ответ: \(36892 \,\, 45510\)

Обсуждение задания

Здесь пока нет ни одного комментария. Будьте первым!

kege1
kege2
kege3
Новый тренажёр-эмулятор
Станции КЕГЭ

Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене.

Новое видео

Методы решения задания 16 ЕГЭ по Информатике «Вычисление рекуррентных выражений»

Поддержать автора сайта!

Поддержите автора сайта, если материалы, размещённые здесь, оказались вам полезны.

Совершая донат, вы соглашаетесь с Условиями использования

Расписание пробников Статграда в 2026/27 учебном году