Решение: Подсчёт пар по остаткам
В файле содержится последовательность натуральных чисел. Её элементы могут принимать целые значения от 1 до 100 000 включительно. Определите количество пар последовательности, в которых сумма остатков от деления обоих элементов на 18 равна минимальному элементу последовательности. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар.
Решение по шагам
4 шагаСчитываем всю последовательность и находим её минимальный элемент $m$.
$$m = \min(a_1, a_2, \ldots, a_n)$$Последовательно рассматриваем все пары соседних элементов $(a_i, a_{i+1})$, где $1 \le i < n$.
Для каждой пары проверяем равенство суммы остатков минимальному элементу последовательности.
$$(a_i \bmod 18) + (a_{i+1} \bmod 18) = m$$Если условие выполнено, увеличиваем количество пар и сравниваем сумму элементов пары с текущим максимумом.
$$S = \max(S, a_i + a_{i+1})$$Точный числовой ответ невозможно определить без содержимого приложенного файла с последовательностью.
Этот ответ получен в разборе, но не сверен с официальным ключом из банка — проверьте выкладки, прежде чем заучивать результат.
Где здесь ошибаются
Рассматривают все пары элементов вместо пар соседних элементов.
Сравнивают сумму самих элементов с минимумом вместо суммы их остатков по модулю 18.
Не находят минимум по всей последовательности до проверки пар.
Выводят минимальную, а не максимальную сумму подходящих пар.