26

26 задание ЕГЭ информатика

Обработка данных с сортировкой

2 балла ≈ 35 мин уровень В

Задание 26 – файл с N объектами (файлы, грузы, продукты, места в зале). Нужно смоделировать процесс, где ключевую роль играет сортировка, и вывести два числа. 2 балла (1 балл, если одно число верно или числа переставлены).

Общий подход

  1. Перескажи правило своими словами и проверь его на примере из условия.
  2. Отсортируй данные так, как требует жадная стратегия (по возрастанию размеров, по времени, по паре ключей).
  3. Смоделируй процесс и выведи оба числа. Сверь программу с ответом примера.

Классика: максимум файлов на диске

f = open("26.txt")
S, N = map(int, f.readline().split())
a = sorted(int(x) for x in f)
cnt = total = 0
for x in a:                      # берём самые маленькие, пока влезают
    if total + x > S:
        break
    total += x
    cnt += 1
free = S - (total - a[cnt - 1])  # место, если убрать последний взятый
best = max(x for x in a[cnt - 1:] if x <= free)
print(cnt, best)                 # количество и максимальный последний файл

Рейтинг по событиям (как в демоверсии 2026). Все 2N чисел сортируются; минимальное число «первого типа» ставит объект в начало списка, «второго типа» – в конец; уже размещённые объекты пропускаются.

f = open("26.txt")
n = int(f.readline())
ev = []
for i in range(1, n + 1):
    s, g = map(int, f.readline().split())
    ev.append((s, i, "s"))
    ev.append((g, i, "g"))
ev.sort()
place = {}
left, right = 1, n
last = 0
for val, i, kind in ev:
    if i in place:
        continue
    if kind == "s":
        place[i] = left
        left += 1
    else:
        place[i] = right
        right -= 1
    last = i
print(last, n - place[last])     # последний размещённый и сколько ниже него

Разобранный пример. Продукты: 1 (30, 50), 2 (100, 155), 3 (150, 170), 4 (10, 160), 5 (120, 55). Сортировка: 10 (хранение, 4) → место 1; 30 (хранение, 1) → место 2; 50 – продукт 1 уже размещён; 55 (годность, 5) → место 5; 100 (хранение, 2) → место 3; 120 – пропуск; 150 (хранение, 3) → место 4. Рейтинг 4, 1, 2, 3, 5; последний – продукт 3, ниже него один продукт. Программа выводит «3 1».

На экзамене
  • Всегда проверяй программу на примере из условия – там есть готовый ответ.
  • Сортировка кортежей в Python идёт по первому элементу, при равенстве – по второму: этим удобно задавать порядок.
  • Записывай два числа в том порядке, который указан в задании.

Разобранные задания 26 из открытого банка ФИПИ

Пример 1 · код ФИПИ A99635

Рисунок к заданию

Задание выполняется с использованием прилагаемых
файлов.

Входной файл содержит заявки пассажиров, желающих сдать свой багаж в камеру хранения. В заявке указаны время сдачи багажа
и время освобождения ячейки (в минутах от начала суток).
Багаж одного пассажира размещается в одной свободной ячейке
с минимальным номером. Ячейки пронумерованы начиная
с единицы. Размещение багажа в ячейке или её освобождение происходит в течение 1 мин. Багаж можно поместить в только что освобождённую ячейку начиная со следующей минуты.
Если в момент сдачи багажа свободных ячеек нет, то пассажир уходит. Определите, сколько пассажиров сможет сдать свой багаж
в течение 24 ч и какой номер будет иметь ячейка, которую займут последней. Если таких ячеек несколько, укажите минимальный номер ячейки.

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

В первой строке входного файла находится натуральное число K,
не превышающее 1000, – количество ячеек в камере хранения.
Во второй строке – натуральное число N (N ≤ 1000), обозначающее количество пассажиров. Каждая из следующих N строк содержит два натуральных числа, каждое из которых не превышает 1440: указанное в заявке время размещения багажа в ячейке и время освобождения ячейки (в минутах от начала суток).

Запишите в ответе два числа: количество пассажиров, которые смогут воспользоваться камерой хранения, и номер последней занятой ячейки.

Типовой пример организации данных во входном файле

2

5

30 60

40 1000

59 60

61 1000

1010 1440

При таких исходных данных положить вещи в камеру хранения смогут первый, второй, четвёртый и пятый пассажиры. Последний пассажир положит вещи в ячейку 1, так как ячейки 1 и 2 будут свободны.

Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.

Файл к заданию (ZIP)

Показать ответ и решение

Ответ: 389 133

Заявки сортируем по времени прихода; ячейка свободна, если время её освобождения строго меньше времени прихода; берём свободную с минимальным номером.

Ответ: 389 и 133.

Пример 2 · код ФИПИ 05BFA6

Рисунок к заданию

Задание выполняется с использованием прилагаемых
файлов.

В магазине для упаковки подарков есть N кубических коробок
из материалов двух видов. Самой интересной считается упаковка подарка по принципу матрёшки – подарок упаковывается в одну
из коробок, та, в свою очередь, в другую коробку и т.д. Одну коробку можно поместить в другую, если длина её стороны хотя бы
на D единиц меньше длины стороны другой коробки, при этом любые две соседние коробки сделаны из разных материалов. Известны длины сторон и материал коробок, имеющихся в наличии. Определите наибольшее количество коробок, которое можно использовать для упаковки одного подарка и максимально возможную длину стороны самой маленькой из этих коробок. Размер подарка позволяет поместить его в самую маленькую коробку.

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

В первой строке входного файла находятся два натуральных числа через пробел: N (N < 100 000) – количество коробок
и D (D < 10 000) – минимальная допустимая разность длин двух соседних коробок в «матрёшке». Каждая из следующих N строк содержит два разделённых пробелом натуральных числа, каждое
из которых не превышает 10 000: длину стороны и условное обозначение вида материала коробки (0 или 1).

Запишите в ответе два числа: сначала наибольшее количество коробок, подходящих для упаковки подарка «матрёшкой», затем максимально возможную длину стороны самой маленькой коробки.

Типовой пример организации данных во входном файле

6 3

43 1

41 0

39 0

38 1

26 0

24 1

Пример входного файла приведён для шести коробок и случая, когда минимальная допустимая разница между длинами сторон коробок, подходящих для упаковки «матрёшкой», составляет 3 единицы.

При таких исходных данных условию задачи удовлетворяют наборы коробок с длинами сторон 24, 39, 43 (материалы этих коробок – 1, 0, 1 соответственно) или 26, 38, 41 (материалы – 0, 1,
0 соответственно). Таким образом, количество коробок равно 3,
а максимально возможная длина стороны самой маленькой коробки равна 26.

 

Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.

Файл к заданию (ZIP)

Показать ответ и решение

Ответ: 166 63

Динамика по размерам от больших к меньшим: g(коробка) = 1 + лучшая цепочка снаружи из коробки другого материала со стороной ≥ s + D (суффиксные максимумы по каждому материалу).

Максимум 166 коробок, наибольшая сторона самой маленькой – 63.

Пример 3 · код ФИПИ A9339F

Рисунок к заданию

Задание выполняется с использованием прилагаемых
файлов.

Входной файл содержит сведения о заявках на проведение мероприятий в конференц-зале. В каждой заявке указаны время начала и время окончания мероприятия (в минутах от начала суток). Если время начала одного мероприятия меньше времени окончания другого, то провести можно только одно из них. Если время окончания одного мероприятия совпадает со временем начала другого, то провести можно оба. Определите, какое максимальное количество мероприятий можно провести в конференц-зале, и каков при этом максимально возможный перерыв между двумя последними мероприятиями.

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

В первой строке входного файла находится натуральное число N
(N ≤ 1000) – количество заявок на проведение мероприятий. Следующие N строк содержат пары чисел, обозначающих время начала и время окончания мероприятий. Каждое из чисел натуральное, не превосходящее 1440.

Запишите в ответе два числа: максимальное количество мероприятий и самый длинный перерыв между двумя последними мероприятиями (в минутах).

Типовой пример организации данных во входном файле

5

10 150

100 120

131 170

150 180

120 130

При таких исходных данных можно провести максимум три мероприятия, например, мероприятия по заявкам 2, 3 и 5. Максимальный перерыв между двумя последними мероприятиями составит 20 мин., если состоятся мероприятия по заявкам 2, 4 и 5.

 

Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемых файлов.

Файл к заданию (ZIP)

Показать ответ и решение

Ответ: 32 15

Сортируем мероприятия по окончанию; f[i] – наибольшее число мероприятий в цепочке, оканчивающейся мероприятием i. Максимум 32; наибольший перерыв между двумя последними – 15 мин.

Ответ: 32 и 15.

Частые вопросы о задании 26

Сколько баллов даёт задание 26 ЕГЭ по информатике?

Максимум – 2 первичных балла. Норма времени на экзамене – около 35 мин. Уровень сложности – В.

Что проверяет задание 26?

Задание 26 – файл с N объектами (файлы, грузы, продукты, места в зале). Нужно смоделировать процесс, где ключевую роль играет сортировка, и вывести два числа. 2 балла (1 балл, если одно число верно или числа переставлены).

Как подготовиться к заданию 26?

Прочитайте теорию выше: алгоритм, нужные факты и ловушки. Затем решите подход из 10 заданий с автопроверкой и разбором – первые без регистрации – и вернитесь к ошибкам. В пробниках Сотки номер встречается в полных вариантах ФИПИ с подсчётом баллов.

Упражнения к заданию 26

10 заданий подряд с проверкой и разбором · первые 7 – без регистрации