ACMP 928

Материал из Олимпиадное программирование в УлГТУ
Версия от 17:48, 2 ноября 2016; Ctrlalt (обсуждение | вклад) (Новая страница: «== Ссылки на задачу == * [http://acmp.ru/?main=task&id_task=928 ACMP #928 — Берёзовая аллея] == Похожие задачи == …»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Ссылки на задачу

Похожие задачи

Комментарии

Будем перебирать пары (i1, j1) в порядке увеличения суммы (i1 + j1), а при равных суммах – в порядке возрастания i1. Для каждой такой суммы с ростом i1 оба конца отрезка допустимых (для данного i1) значений j2 будут уменьшаться.

Тогда для хранения этого отрезка можно использовать очередь с поддержкой операций добавления в конец, удаления из начала и поиска минимум за O(1). В этом случае нам потребуется лишь линейная дополнительная память для хранения очереди, длина которой в каждый момент времени не будет превосходить N.