| Codeforces Round 1059 (Div. 3) |
|---|
| Закончено |
Дерево — это связный граф без циклов.
Дерево называется красивым, если сумма произведений меток вершин для всех его рёбер является совершенным квадратом.
Более формально, пусть $$$E$$$ — множество рёбер в дереве. Дерево называется красивым, если значение $$$$$$S = \sum_{\{u, v\} \in E} (u \cdot v)$$$$$$ является совершенным квадратом. То есть существует такое целое число $$$x$$$, что $$$S = x^2$$$.
Вам дано целое число $$$n$$$. Ваша задача — построить красивое дерево с $$$n$$$ вершинами или сообщить, что такое дерево не существует.
Первая строка входных данных содержит одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных.
Каждый набор входных данных содержит одно целое число $$$n$$$ ($$$2 \le n \le 2\cdot10^5$$$).
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превышает $$$2\cdot10^5$$$.
Для каждого набора входных данных, если красивое дерево с $$$n$$$ вершинами не существует, выведите $$$-1$$$.
В противном случае выведите $$$n-1$$$ строк, обозначающих рёбра красивого дерева с $$$n$$$ вершинами. Каждая строка должна содержать два целых числа $$$u,v$$$ ($$$1 \le u,v \le n$$$), представляющих ребро.
Вершины можно выводить в любом порядке в пределах одного ребра, а рёбра можно выводить в любом порядке.
3234
-11 32 31 23 14 1
Пример 1: Красивое дерево с $$$2$$$ вершинами не существует. Поэтому ответ $$$-1$$$.
Пример 2:
$$$S = (2\cdot3) + (1\cdot3) = 9 = (3)^2$$$ Пример 3:
$$$S = (2\cdot1) + (3\cdot1) + (4\cdot1) = 9 = (3)^2$$$
| Название |
|---|


