Жауабы: Максимальная сумма пары
Язык программирования: Python 3. Программа выполняет однопроходную обработку последовательности, работает за $O(N)$ и использует $O(1)$ дополнительной памяти.
У этого задания официального ключа нет, поэтому ответ получен в разборе және кілтпен салыстырылмаған. Нәтижені жаттамас бұрын, өтіңіз выкладки — там видно, откуда взялось каждое число.
Бланкке: өлшем бірліктері жоқ сан немесе сөз; бөлшек бөлігін үтірмен бөліңіз.
Дана последовательность $N$ целых положительных чисел. Рассматриваются все пары элементов последовательности, удовлетворяющие следующим условиям: числа в паре имеют различные остатки от деления на $d = 200$, и по крайней мере одно из чисел пары делится на $p = 7$. Порядок элементов в паре неважен. Среди всех таких пар нужно найти и вывести пару с максимальной суммой элементов. Если одинаковую максимальную сумму имеет несколько пар, можно вывести любую из них. Если подходящих пар в последовательности нет, нужно вывести два нуля.
В первой строке входных данных задаётся количество чисел $N$ ($2 \leq N \leq 10\,000$). В каждой из последующих $N$ строк записано одно натуральное число, не превышающее $10\,000$.
Напишите эффективную по времени и памяти программу для решения этой задачи. Программа должна работать за время $O(N)$ и использовать объём памяти, не зависящий от $N$ и $d$. Перед текстом программы кратко опишите алгоритм решения и укажите использованный язык программирования и его версию.
Где здесь ошибаются
Хранить все входные числа или массив размером $N$, что нарушает требование по памяти.
Проверять все пары, получая сложность $O(N^2)$.
Не учитывать различие остатков от деления на $200$.
При совпадении остатка с первым максимумом не переходить ко второму максимуму.
Разрешить число само с собой, если оно уже было добавлено в структуру до проверки текущего числа.