Олимпиадный тренинг

Задача . C. Разбиение на пары


Дано целое число \(n\). Разбейте числа от \(1\) до \(2n\) на пары (каждое число должно быть ровно в одной паре) так, чтобы суммы пар были последовательными различными целыми числами.

Формально, пусть \((a_i, b_i)\) — пары, на которые вы разбили числа. \(\{a_1, b_1, a_2, b_2, \ldots, a_n, b_n\}\) должно быть перестановкой чисел \(\{1, 2, \ldots, 2n\}\). Обозначим отсортированные по возрастанию значения \(\{a_1+b_1, a_2+b_2, \ldots, a_n+b_n\}\) как \(s_1 < s_2 < \ldots < s_n\). Должно выполняться \(s_{i+1}-s_i = 1\) для всех \(1 \le i \le n - 1\).

Входные данные

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число \(t\) (\(1 \le t \le 500\)) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит одно число \(n\) (\(1 \leq n \leq 10^5\)).

Гарантируется, что сумма значений \(n\) по всем наборам входных данных не превосходит \(10^5\).

Выходные данные

Для каждого набора входных данных, если такое разбиение не существует, выведите «No». В противном случае выведите «Yes», а после \(n\) строк — пары чисел.

Вы можете выводить каждую букву в любом регистре (строчную или заглавную). Например, строки «yEs», «yes», «Yes» и «YES» будут приняты как положительный ответ.

Примечание

Для третьего набора каждое целое число от \(1\) до \(6\) встречается один раз. Суммы совпавших пар составляют \(4+2=6\), \(1+6=7\), \(3+5=8\) — последовательные различные целые числа.


Примеры
Входные данныеВыходные данные
1 4
1
2
3
4
Yes
1 2
No
Yes
1 6
3 5
4 2
No

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя