← Все вопросы

Как решать задание 26 ЕГЭ по информатике (жадность, сортировка)?

Задан 18 месяцев назад683 просмотров2 ответа
11

Задание 26 даёт файл с данными (например, размеры файлов и объём диска) и просит, сколько максимум поместится и какой-то параметр. Это первая задача второй части, и она пугает. Как решать задание 26 на Python?

2 ответа

14
✓ Принятый ответ — помог автору

Задание 26 — первая задача второй части, обработка набора данных из файла. Типичный сюжет: даны числа (размеры, веса, заявки), нужно вместить максимум при ограничении, плюс ответить на второй подвопрос (например, размер последнего вошедшего).

Главный приём — жадный алгоритм через сортировку. Чтобы влезло максимум предметов, бери их по возрастанию величины.

data = open('26.txt').read().split()
n = int(data[0])
sizes = list(map(int, data[1:1+n]))
limit = 1000            # ограничение из условия

sizes.sort()            # от меньшего к большему — влезет больше штук
total = 0
count = 0
last = 0
for s in sizes:
    if total + s <= limit:
        total += s
        count += 1
        last = s        # размер последнего вошедшего
    else:
        break
print(count, last)

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

Частые ошибки:

  • неверно прочитать формат файла (первая строка — количество, дальше данные; иногда по строкам);
  • забыть отсортировать (жадность работает только на отсортированных);
  • неправильно понять оптимизируемую величину (максимум штук vs максимум суммы — это разные стратегии!).

Если просят максимум по числу — сортируй по возрастанию; если по суммарной ценности — задача сложнее, читай условие.

5

Ключ к 26 — понять, что именно максимизируем. «Сколько максимум объектов поместится» → сортируй по возрастанию и набирай жадно, это даёт наибольшее количество. Это срабатывает почти всегда в школьном варианте.

И не теряй второй подвопрос: он обычно и есть «дорогой» — там просят конкретный параметр (последний элемент, оставшееся место). Аккуратно разбери формат входного файла: путаница «количество в первой строке + данные дальше» стоит баллов на ровном месте.

Ваш ответ

Войдите, чтобы ответить на вопрос.