Задача №114762. Интересные выходные

Петя и его младший брат Коля пришли в аквапарк. Коля любит кататься с горки, которую можно схематически изобразить как часть треугольной сетки, вершины которой — узлы горки. В каждом узле можно выбрать, по какой трубе ехать дальше — влево-вниз или вправо-вниз.

Уровни горки нумеруются сверху вниз, начиная с \(0\). На нулевом уровне у горки один узел — начало поездки, на первом уровне — два узла, ..., на \(i\)-м уровне — \(i + 1\) узлов. Всего у горки \(n + 1\) уровней. Каждая поездка сверху вниз проходит ровно по \(n\) трубам. У каждого узла есть координаты: два числа \((r, c)\) задают \(c\)-й слева узел на уровне \(r\) (\(0 \leq c \leq r \leq n\)). Обратите внимание, что и уровни, и узлы на каждом уровне нумеруются с \(0\). Если Коля находится в узле \((r, c)\) и поедет влево-вниз, он попадет в узел \((r + 1, c)\), а если он поедет вправо-вниз, он попадет в узел \((r + 1, c + 1)\).

Коля хочет скатиться с горки ровно \(n + 1\) раз. Перед каждым спуском Петя будет выдавать ему инструкцию, как надо спуститься по горке. Каждая инструкция состоит ровно из \(n\) команд «влево-вниз» или «вправо-вниз» — куда Коля должен ехать из очередного узла.

Первая инструкция состоит только из команд «вправо-вниз». Пете лень придумывать новые инструкции, поэтому инструкции для двух соседних спусков отличаются только одной командой: чтобы получить инструкцию \(i + 1\) из инструкции \(i\), надо изменить \(a_i\)-ю команду с «вправо-вниз» на «влево-вниз» (\(1 \leq a_i \leq n\)). Заметим, что каждая команда будет изменена таким образом ровно один раз. В результате, \((n + 1)\)-я инструкция будет состоять только из команд «влево-вниз». Можно показать, что каждый узел будет посещен Колей хотя бы в одном из спусков.

На обратном пути из аквапарка у Коли возникло несколько вопросов следующего вида. Рассмотрим множество всех труб, по которым он проехал хотя бы один раз. Коля называет координаты двух узлов: \((r_1, c_1)\) и \((r_2, c_2)\). Вы должны определить координаты такого узла \((r_3, c_3)\), что из него по рассматриваемым трубам достижимы узлы \((r_1, c_1)\) и \((r_2, c_2)\), и среди всех таких узел \((r_3, c_3)\) является наиболее низким, то есть с максимальным возможным значением \(r_3\). Можно показать, что такой узел всегда существует и единственен.

Ответьте на все его вопросы!

Входные данные

В первой строке дано одно целое число \(n\) (\(1 \leq n \leq 500\,000\)).

В следующей строке даны \(n\) целых чисел \(a_1\), \(a_2\), ... \(a_n\) (\(1 \leq a_i \leq n\)), где \(a_i\)  — номер команды, которая изменится после \(i\)-го спуска. Гарантируется, что все \(a_i\) различны.

В следующей строке дано одно целое число \(q\) (\(1 \leq q \leq 500\,000\)) — количество вопросов Коли.

В каждой из следующих \(q\) строк даны четыре целых числа \(r_{i,1}\), \(c_{i,1}\), \(r_{i,2}\) и \(c_{i,2}\) (\(0 \leq r_{i,1}, r_{i,2} \leq n\); \(0 \leq c_{i,1} \leq r_{i,1}\); \(0 \leq c_{i,2} \leq r_{i,2}\)) — координаты первого и второго узлов из \(i\)-го вопроса.

Выходные данные

Выведите \(q\) строк, в \(i\)-й строке выведите два целых числа \(r_{i,3}\) и \(c_{i, 3}\) — координаты узла, являющегося ответом на \(i\)-й вопрос.

Система оценки

Ограничения
Подзадача Баллы \(n\) \(q\) дополнительно Необх. подзадачи Информация о проверке
1 14 \(n \le 300\) \(q \le 300\) У первая ошибка
2 23 \(n \le 3000\) \(q \le 3000\) У, 1 первая ошибка
3 10 \(n \le 100\,000\) \(q \le 100\,000\) \(a_i = i\) для всех \(i\) первая ошибка
4 13 \(n \le 100\,000\) \(q \le 100\,000\) массив \(a\) имеет особый вид, см. ниже первая ошибка
5 15 \(n \le 100\,000\) \(q \le 100\,000\) У, 1–4 первая ошибка
6 14 \(n \le 300\,000\) \(q \le 300\,000\) У, 1–5 первая ошибка
7 11 \(n \le 500\,000\) \(q \le 500\,000\) У, 1–6 первая ошибка

В подзадаче 4 массив \(a\) имеет вид \(1, 2, \dots k, n, n - 1, \dots k + 1\) для \(0 \leq k \leq n\).

Примеры
Входные данные
3
2 3 1
5
3 3 3 0
2 2 2 1
1 0 3 1
3 1 3 2
2 2 2 2
Выходные данные
0 0
1 1
0 0
2 1
2 2
Сдать: для сдачи задач необходимо войти в систему