Горпина та рядок серверів
Обмеження: 2 сек., 256 МіБ
Горпина — програмістка. Вона навіть недавно сусідам мікрохвильовку ремонтувала.
Одного суботнього ранку Горпина вирішила, що в неї достатньо грошей, та й накупила собі серверів.
Грошей вистачило на \(2*n\) серверів, які вона поставила у серверній кімнаті в один ряд вздовж однієї стіни. \(i\)-й сервер стоїть на відстані \(x_i\) від лівої стіни.
Тепер Горпина хоче за допомогою \(n\) кабелів з’єднати всі сервери в пари. Кожен з серверів може бути залучений тільки в одній парі. Один кабель може з’єднувати лише два сервери.
Оскільки грошей в Горпини залишилось зовсім трішки, вона хоче використати якомога менше кабелю. Допоможіть їй розбити сервери на пари так, щоб використати мінімальну сумарну довжину кабелів.
Вхідні дані
У першому рядку задано одне ціле число \(n\) — кількість пар серверів, яку потрібно сформувати.
У другому рядку задано \(2*n\) цілих чисел \(x_i\) — координати \(i\)-го сервера (відстань від лівої стіни кімнати в сантиметрах).
Вихідні дані
Виведіть \(n\) рядків — пари серверів, такі що мінімізують сумарну довжину кабелів.
У кожному з рядків виведіть по два цілих числа — координати пари двох серверів, з’єднаних \(i\)-м кабелем.
Обмеження
\(1 \le n \le 10 ^ {5}\),
\(0 \le x_i \le 10 ^ {9}\),
усі \(x_i\) різні.
Приклади
| Вхідні дані (stdin) | Вихідні дані (stdout) |
|---|---|
| 3 400 200 300 340 360 460 | 460 400 200 300 360 340 |
Надіслати розв'язок
| Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
|---|
| Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
|---|