решай.ai · шпаргалка
Задание 26: Обработка целочисленной информации
ЕГЭ Информатика
Как выглядит
Сюжет обычно бытовой: архивация файлов, распределение ресурсов, обработка показаний датчиков. Во входном файле в первой строке даны параметры — например (ограничение) и (количество элементов, до 1000–5000), затем в строках идут сами числа (обычно натуральные, не больше 100). Нужно вывести одно или два числа-ответа: например, максимальное количество элементов, которые можно уместить в ограничение, и дополнительный параметр (максимальный или минимальный элемент в этом наборе). Задание оценивается в 2 балла — по одному баллу за каждое верно найденное число.
Что нужно знать
- — ограничение (объём диска, лимит времени, вместимость); — количество элементов; — значения.
- Префиксная сумма отсортированного по возрастанию массива: .
- Монотонность: если массив отсортирован по возрастанию, не убывает при росте , поэтому можно искать максимальное допустимое простым проходом или бинарным поиском.
- Условие допустимости набора из элементов: .
- Жадный принцип: чтобы вместить максимум элементов при ограничении суммы, берут наименьшие по значению элементы.
- Чтобы максимизировать «верхний» элемент в наборе при фиксированном , используют метод последовательных замен наименьшего выбранного элемента на следующий по величине из оставшихся, если сумма остаётся .
- Резерв после набора: — показывает, сколько «свободного места» остаётся для возможных замен.
- Суммарный объём данных редко превышает разумные пределы (например, ), но тип переменной для суммы стоит выбирать с запасом.
Алгоритм
- Прочитать первую строку файла: значения и .
- Прочитать чисел в массив.
- Отсортировать массив по возрастанию.
- Накапливать сумму по возрастанию элементов, пока она не превысит ; число накопленных элементов — первый ответ .
- Зафиксировать сумму и текущий набор (первые элементов).
- Для второго ответа применить метод замен: пытаться заменить наименьший элемент текущего набора на следующий недобранный элемент, если после замены сумма остаётся ; повторять, пока находятся выгодные замены.
- Вывести два числа в требуемом порядке: количество элементов и найденный оптимальный параметр (например, максимальный размер файла).
Ловушки
- Сортировка в неверном порядке: для максимизации количества элементов нужно сортировать по возрастанию, а не по убыванию.
- Наивный вывод максимума из первых наименьших элементов без метода замен — это даёт заниженный второй ответ (40 вместо 50 в примере выше).
- Остановка после одной удачной замены: нужно повторять процесс, пока находятся выгодные варианты, иначе результат окажется неоптимальным.
- Ошибки при чтении входного файла: путаница порядка и в первой строке, неверное количество считанных строк.
- Переполнение переменных при суммировании большого количества элементов — стоит проверять диапазон типа данных в выбранном языке.
- Выход за границы массива при переборе кандидатов на замену (особенно на последнем элементе).
- Неверный порядок чисел в ответе: сначала количество, затем оптимальный параметр, а не наоборот.
reshay.ai/ege/informatika/zadanie-26 — задачи с разборами и тренажёр