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

Задача . C2. Хорошие числа (сложная версия)


Единственное отличие между простой и сложной версиями — максимальное значение \(n\).

Вам дано положительное целое число \(n\). Вы очень любите хорошие числа, поэтому вам хочется найти минимальное хорошее число, большее или равное \(n\).

Положительное число называется хорошим, если оно может быть представлено в виде суммы различных степеней \(3\) (т.е. повторения степеней \(3\) запрещены).

Например:

  • \(30\)хорошее число: \(30 = 3^3 + 3^1\),
  • \(1\)хорошее число: \(1 = 3^0\),
  • \(12\)хорошее число: \(12 = 3^2 + 3^1\),
  • но \(2\) не является хорошим числом: вы не можете представить его в виде суммы различных степеней \(3\) (\(2 = 3^0 + 3^0\)),
  • \(19\) не является хорошим числом: вы не можете представить его в виде суммы различных степеней \(3\) (например, представления \(19 = 3^2 + 3^2 + 3^0 = 3^2 + 3^1 + 3^1 + 3^1 + 3^0\) не являются корректными),
  • \(20\) тоже не является хорошим числом: вы не можете представить его в виде суммы различных степеней \(3\) (например, представление \(20 = 3^2 + 3^2 + 3^0 + 3^0\) не является корректным).

Обратите внимание, что существуют и другие представления \(19\) и \(20\) в качестве сумм степеней \(3\), но ни одно из них не состоит из различных степеней \(3\).

Для заданного положительного числа \(n\) найдите наименьшее \(m\) (\(n \le m\)) такое, что \(m\)хорошее число.

Вам необходимо ответить на \(q\) независимых запросов.

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

Первая строка входных данных содержит одно целое число \(q\) (\(1 \le q \le 500\)) — количество запросов. Затем следуют \(q\) запросов.

Единственная строка запроса содержит одно целое число \(n\) (\(1 \le n \le 10^{18}\)).

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

Для каждого запроса выведите наименьшее число \(m\) (где \(n \le m\)) такое, что \(m\)хорошее число.


Примеры
Входные данныеВыходные данные
1 8
1
2
6
13
14
3620
10000
1000000000000000000
1
3
9
13
27
6561
19683
1350851717672992089

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

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