Не закрывайте этот пост, пусть номер задачи вас не пугает. Уверяю, что реализация этой задачи сопоставима с реализацией задачи B из Div 2 раунда.
Этот пост посвящён задаче G. Рациональная пузырьковая сортировка из Div 1 + Div 2 раунда, которая является примером, что математический подход может решать даже такие сложные задачи по программированию. Итак, реализация тут простая, но как же додуматься до решения? Этому и посвящён текущий пост
Задача такова — дано $$$n \leq 10^6$$$ целых неотрицательных чисел, за один ход мы можем усреднить два соседних числа, получая уже рациональные числа. Требуется понять, можно ли за 0 или больше таких операций сделать массив неубывающим.
Итак, у нас есть задача, ответом на которую является "Да" или "Нет", так что логично будет попытаться найти какие-то случаи входных данных, в которых ответ нас будет известен. Так как в задаче есть много вариантов действий, давайте сначала попробуем понять, когда ответ точно "Да"
Вопрос 1: Опишите какие-нибудь ограничения на входные данные, при которых ответ всегда "Да"
Итак, мы поняли один, но довольно частый и реалистичный случай, в котором ответ "Да". Следует закономерный вопрос
Вопрос 2: Нет ли ещё случаев, когда ответ точно "Да"?
Итак, мы уже получили сильное свойство, довольно частое, при котором ответ всегда "Да"
Вопрос 3: Достаточно ли его?
Давайте попробуем понять, когда же из оставшихся случаев ответ "Нет"
Вопрос 4: Когда ответ точно "Нет"?
Мы довольно сильно переформулировали задачу и получили строгое разделение на ответы "Да" и "Нет". Нужно только понять, как проверить условие на "Нет"
Вопрос 5: Как же это проверять?
Итого, наше решение работает за $$$O(n)$$$ и использует не больше реализации, чем начальная задачка на div 2 раунде, но содержит в себе математическую сложность. Пишите в комментарии, насколько просто в итоге додуматься до этой задачи? Ведь несмотря на большое количество текста, шаги в нём не самые сложные
Замечание: Если Вам понравился это пост, то, возможно, Вам понравится контент из телеграм канала, в который я выкладываю свою подготовку к финалу ICPC 2026. Переходите по ссылке







