Ответ: Максимальная допустимая пара
Однопроходный алгоритм на Python 3.11: хранить по два максимальных числа каждой чётности среди всех чисел и среди чисел, кратных 17; затем проверить постоянное число пар-кандидатов. Сложность — O(N) по времени и O(1) по памяти.
У этого задания официального ключа нет, поэтому ответ получен в разборе и с ключом не сверен. Перед тем как заучивать результат, пройдите выкладки — там видно, откуда взялось каждое число.
Дана последовательность $N$ целых положительных чисел. Рассматриваются все пары элементов последовательности, разность которых чётна, и в этих парах по крайней мере одно из чисел пары делится на $17$. Порядок элементов в паре неважен. Среди всех таких пар нужно найти и вывести пару с максимальной суммой элементов. Если одинаковую максимальную сумму имеет несколько пар, можно вывести любую из них. Если подходящих пар в последовательности нет, нужно вывести два нуля.
В первой строке входных данных задаётся количество чисел $N$ ($2 \leq N \leq 10000$). В каждой из последующих $N$ строк записано одно натуральное число, не превышающее $10000$.
Напишите эффективную по времени и памяти программу для решения этой задачи. Программа должна работать за время $O(N)$ и использовать объём памяти, не зависящий от $N$ и не превышающий $1$ Кбайт. Перед текстом программы кратко опишите алгоритм решения и укажите использованный язык программирования и его версию.
Где здесь ошибаются
Проверять только пары из двух чисел, кратных 17, хотя достаточно, чтобы кратным 17 было хотя бы одно число.
Считать допустимыми пары разной чётности.
Хранить только одно максимальное число каждой группы и потерять возможность составить пару из двух одинаковых значений.
Использовать массив или список размером N, нарушая требование постоянного объёма памяти.
Разрешить использование одного и того же элемента последовательности дважды.