ALEXMATH

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

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

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

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

Задание 26. Информатика. ЕГЭ. Поляков-7675

Просмотры: 678
Изменено: 11 мая 2025

(В. Ланская, Р. Ягафаров) В некотором городе существует база данных о зарегистрированных автомобильных нарушениях за последние полгода. Марка каждого автомобиля закодирована как целое число, каждый автомобиль отнесен к одному из трёх классов: эконом, средний, премиум. Возможно, что автомобили одной марки имеют разные классы, это указывает на различные варианты комплектации. В таком случае каждую комбинацию «марка – класс» следует рассматривать как отдельную марку. На основе этой статистики необходимо определить водители какой марки автомобилей в сумме заплатили больше всего за все нарушения. Если таких марок несколько, то выбирается марка с наибольшим номером, и если и таких марок несколько, то марка с наивысшим классом.

Входные данные представлены в файле следующим образом. В первой строке входного файла записано натуральное число \(N,\) не превышающее \(10~000\) — количество нарушений, которые занесены в базу. В каждой из следующих \(N\) строках через пробел записаны три числа — код марки автомобиля (от \(1000\) до \(9999),\) сумма штрафа (натуральное число, не превышающее \(5000)\) и код класса \((1\) — эконом, \(2\) — средний, \(3\) — премиум).

Запишите в ответе два числа: код марки с наибольшей суммой штрафов и саму сумму штрафов, которую заплатили водители данной марки автомобиля.

Пример входного файла:

\(4\)
\(6666 \,\, 750 \,\, 1\)
\(2222 \,\, 1050 \,\, 2\)
\(3333 \,\, 550 \,\, 1\)
\(2222 \,\, 1100 \,\, 2\)

При таких исходных данных наибольшую сумму \((1050 + 1100 = 2150)\) заплатили водители марки \(2222\) класса \(2.\) Ответ: \(2222 \,\, 2150.\)

Решение:

Python


fd = open('26.txt')

N = int(fd.readline())
penalties = {}

for line in fd:
    m, p, cl = map(int, line.split())
    penalties[(m, cl)] = penalties.get((m, cl), 0) + p

arr = list(zip(penalties.values(), penalties.keys()))
arr.sort(reverse=True)
print(arr[0][1][0], arr[0][0])

Ответ: \(2595 \,\, 13429\)

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

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

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

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

Новое видео

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

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

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

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

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