Декартово дерево
Вам даны пары чисел (a_i, b_i), Вам необходимо построить декартово дерево, такое что i-ая вершина имеет ключи (a_i, b_i), вершины с ключом a_i образуют бинарное дерево поиска, а вершины с ключом b_i образуют кучу.
Входные данные
В первой строке записано число N - количество пар. Далее следует N (1 ≤ N ≤ 50000) пар (a_i, b_i). Для всех пар |a_i|, |b_i| ≤ 30000. a_i ≠ a_j и b_i ≠ b_j для всех i ≠ j.
Выходные данные
Если декартово дерево с таким набором ключей построить возможно, выведите в первой строке YES, в противном случае выведите NO. В случае ответа YES, выведите N строк, каждая из которых должна описывать вершину. Описание вершины состоит из трёх чисел: номер предка, номер левого сына и номер правого сына. Если у вершины отсутствует предок или какой-либо из сыновей, то выводите на его месте число 0. Если подходящих деревьев несколько, выведите любое.