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

Задание 26. Информатика. ЕГЭ. Статград. 24.10.2024-2

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

Участники викторины письменно отвечают на \(10\) вопросов различной сложности. За правильный ответ начисляется от \(1\) до \(5\) баллов в зависимости от сложности вопроса. За неверный ответ вычитается от \(1\) до \(5\) баллов. Участник может не отвечать на какой-то вопрос, в таком случае баллы за этот вопрос не начисляются.

По результатам викторины для каждого участника вычисляются три показателя:

  1. сумма – общее количество набранных баллов;
  2. плюсы – сумма баллов без учёта неверных ответов;
  3. ответы – общее количество сданных ответов (верных и неверных).

В таблице результатов участники располагаются по убыванию первого показателя – суммы, при равенстве сумм – по убыванию второго показателя (плюсов), при равенстве сумм и плюсов – по убыванию третьего показателя (ответов). При равенстве всех трёх показателей участники располагаются в итоговой таблице в порядке возрастания их личных номеров.

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

Определите ID участника, занимающего в таблице первое место среди тех, кто не прошёл в следующий тур, а также количество участников, у которых все три показателя такие же, как у участника, занявшего в итоговой таблице 1700 место (включая самого этого участника).

Входные данные

Первая строка входного файла содержит целое число \(N\) (\(N \leqslant 10 000\)) – общее количество участников. Каждая из следующих \(N\) строк соответствует одному участнику и содержит \(11\) целых чисел, разделённых пробелами: сначала ID участника, затем – баллы, полученные им за каждый из \(10\) вопросов. Гарантируется, что ID участников не повторяются.

В ответе запишите два целых числа: сначала требуемый ID, затем требуемое количество.

Решение:

Python


base = ''

part = []
fd = open(base + '26.txt')
N = int(fd.readline())
for line in fd:
    tmp = [int(x) for x in line.split()]
    p = {'ID': -tmp[0],
         'sum': sum(tmp[1:]),
         'plus': sum(x for x in tmp[1:] if x > 0),
         'ans': sum(x != 0 for x in tmp[1:])}
    part.append(p)

part.sort(key=lambda x: (x['sum'], x['plus'], x['ans'], x['ID']), reverse=True)

N4 = N//4 - 1
curr = N4 + 1
while part[curr]['sum'] == part[N4]['sum'] \
      and part[curr]['plus'] == part[N4]['plus'] \
      and part[curr]['ans'] == part[N4]['ans']:
    curr += 1
q = 1
t = 1700
while part[t]['sum'] == part[1699]['sum'] \
      and part[t]['plus'] == part[1699]['plus'] \
      and part[t]['ans'] == part[1699]['ans']:
    q += 1
    t += 1
print(-part[curr]['ID'], q)

Ответ: \(1525 \,\, 4\)

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

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

Новое видео
Методы решения задания 16 ЕГЭ по Информатике «Вычисление рекуррентных выражений»
Поддержать автора сайта!
​ Поддержите автора сайта, если материалы, размещённые здесь, оказались вам полезны.
Расписание пробников Статграда в 2026/27 учебном году
Информатика ОГЭ 9 класс
  1. 13 октября 2026 года
  2. 3 декабря 2026 года
  3. 21 января 2027 года
  4. 19 февраля 2027 года
  5. 23 марта 2027 года
  6. 27 апреля 2027 года
Математика ОГЭ 9 класс
  1. 23 сентября 2026 года
  2. 1 декабря 2026 года
  3. 22 января 2027 года
  4. 3 марта 2027 года
  5. 14 апреля 2027 года
Физика ОГЭ 9 класс
  1. 19 октября 2026 года
  2. 10 декабря 2026 года
  3. 29 января 2027 года
  4. 17 марта 2027 года
  5. 22 апреля 2027 года
Математика ЕГЭ 10 класс
  1. 3 февраля 2027 года
  2. 11 мая 2027 года
Информатика ЕГЭ 11 класс
  1. 22 октября 2026 года
  2. 15 декабря 2026 года
  3. 26 января 2027 года
  4. 2 марта 2027 года
  5. 13 апреля 2027 года
Математика ЕГЭ 11 класс
  1. 30 сентября 2026 года
  2. 17 декабря 2026 года
  3. 9 февраля 2027 года
  4. 16 марта 2027 года
  5. 21 апреля 2027 года
Физика ЕГЭ 11 класс
  1. 14 октября 2026 года
  2. 16 декабря 2026 года
  3. 4 февраля 2027 года
  4. 12 марта 2027 года
  5. 9 апреля 2027 года