Сортировка домино
Денис, молодой программист, получил набор домино в качестве подарка на день рождения. Поскольку Денис был программистом, он не знал, как играть в домино. Вот почему он изобрел новую игру: он взял n домино из набора и сделал из них прямоугольник 2 * n так, чтобы одна доминошка составляла один горизонтальный ряд. Затем он поменял местами и перевернул некоторые из них так, чтобы числа в левом столбце были отсортированы сверху вних в неубывающем порядке, а числа в правом столбце - в невозрастающем порядке. Денис назвал эту игру “сортировкой домино“.
Однако эта игра занимает много времени... Теперь Денис хочет написать программу, которая будет сортировать любой предложенный ему набор домино. Но поскольку Денис молодой программист, он просит Вас помочь ему.
Входные данные
Первая строка содержит целое число n (1 ≤ n ≤ 10^5
). Следующие n строк описывают домино. i-ая строка содержит два целых числа a[i]
и b[i]
(0 ≤ a[i]
, b[i]
≤ 10^6
). Они соответствуют числам на i-ом домино.
Выходные данные
В первой строке выведите YES если заданное множество домино можно отсортировать как описано. Следующие n строк должны описать домино в отсортированном виде - по два числа в каждой строке. Числа в первой колонке должны идти в неубывающем порядке, а во второй колонке - в невозрастающем порядке. Если существует несколько решений - выведите любое. Если решения не существует, выведите в первой строке NO.