Ответ: Пары чисел на расстоянии
Алгоритм с очередью последних четырёх элементов: время $O(N)$, дополнительная память $O(1)$; программа на Python 3 приведена в решении.
У этого задания официального ключа нет, поэтому ответ получен в разборе и с ключом не сверен. Перед тем как заучивать результат, пройдите выкладки — там видно, откуда взялось каждое число.
На вход программы поступает последовательность из $N$ целых положительных чисел, все числа в последовательности различны. Рассматриваются все пары различных элементов последовательности, находящихся на расстоянии не меньше чем 4: разница в индексах элементов пары должна быть 4 или более, порядок элементов в паре неважен. Необходимо определить количество таких пар, для которых произведение элементов делится на 11.
В первой строке входных данных задаётся количество чисел $N$ ($4 \leq N \leq 1000$). В каждой из последующих $N$ строк записано одно целое положительное число, не превышающее 10 000. В качестве результата программа должна вывести одно число — количество пар элементов, находящихся в последовательности на расстоянии не меньше 4, в которых произведение элементов кратно 11.
Требуется написать эффективную по времени и памяти программу. Программа считается эффективной по времени, если при увеличении количества исходных чисел $N$ в $k$ раз время работы программы увеличивается не более чем в $k$ раз. Программа считается эффективной по памяти, если память, необходимая для хранения всех переменных программы, не превышает 1 килобайта и не увеличивается с ростом $N$.
Перед текстом программы необходимо кратко описать алгоритм решения и указать использованный язык программирования и его версию.
Где здесь ошибаются
Проверять все пары двойным циклом и получать время $O(N^2)$.
Учитывать элементы с индексами $i-1$, $i-2$ или $i-3$, хотя они не удовлетворяют условию расстояния.
Считать подходящими только пары, в которых оба числа делятся на 11; достаточно делимости хотя бы одного множителя.
Добавлять текущий элемент в счётчики до подсчёта ответа, из-за чего может быть учтена пара элемента с самим собой.
Хранить весь массив, нарушая требование постоянной памяти.