Декартове дерево#5293

Декартове дерево

2 секунди
64 мегабайти
Легка

Вам задано пари чисел (a_i, b_i). Вам необхідно побудувати декартове дерево, таке що -та вершина має ключі (a_i, b_i), вершини з ключем a_i утворюють бінарне дерево пошуку, а вершини з ключем b_i утворюють купу.

Вхідні дані

У першому рядку записано число — кількість пар. Далі йде (1 \leq N \leq 50000) пар (a_i, b_i). Для усіх пар |a_i|, |b_i| \leq 30000. a_i \neq a_j та b_i \neq b_j для усіх i \neq j.

Вихідні дані

Якщо декартове дерево з таким набором ключів побудувати можливо, виведіть у першому рядку YES, у протилежному випадку виведіть NO. У випадку відповіді YES, виведіть рядків, кожен з яких повинен описувати вершину. Опис вершини складається з трьох чисел: номер предка, номер лівого сина та номер правого сина. Якщо у вершини відсутній предок або який-небудь з синів, то виводьте на його місці число . Якщо підходящих дерев декілька, виведіть будь-яке.

Приклади

Приклад 1

Loading
Loading