eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Испорченный треугольник

Испорченный треугольник

Лимит времени 1 секунда
Лимит использования памяти 64 MiB

Рассмотрим треугольник бесконечного размера. Разделим его на меньшие треугольники и пронумеруем, как показано на рисунке. Два маленьких треугольника являются смежными, если они имеют общую границу (а не только общую точку). Так как каждый треугольник имеет три стороны, то он находится рядом с не более чем тремя другими треугольниками. Треугольники, которые примыкают к двум или только одному треугольнику, находятся на границе бесконечного треугольника.

По номеру треугольника легко визуально определить число смежных с ним треугольников. Например, к треугольнику номер 13 примыкают треугольники с номерами 7, 12 и 14. Если выбрать граничный треугольник, например с номером 25, то легко определить его соседей - это 24 и 35. Напишите программу, которая выполнит описанную функцию.

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

Первая строка содержит количество тестов n (1n100), каждый из которых расположен на одной строке. Каждый тест состоит из одного целого числа - номера треугольника, принимающего значение от 1 до 1000000 включительно.

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

Вывести n строк (по одной строке для каждого теста). Ответом на каждый тест являются номера треугольников, смежных с заданным. Список чисел следует выводить в возрастающем порядке. Между каждой парой номеров треугольников следует выводить один пробел.

Формат выходных данных приведен в примере.

Пример

Входные данные #1
3
13
25
1
Выходные данные #1
7 12 14
24 35
3
Источник TCEA State Programming Contest April, 2008