Последний контест, проведённый на любимой Джонни платформе по спортивному программированию, был встречен довольно позитивно. Однако, рейтинг Джонни снова упал! Он думает, что хотя задачи были неплохие, они не показывают истинный уровень участников.
Теперь мальчик смотрит на рейтинги соседних участников, записанные в двоичной системе счисления. Он считает, что чем больше эти рейтинги различаются, тем более нечестно, что эти участники расположены на соседних позициях. Он определяет различие между двумя числами как количество позиций битов, на которых одно из чисел содержит ноль, а другое — единицу (мы считаем, что числа дополнены ведущими нулями до одинаковой длины). Например, различие между числами $$$5 = 101_2$$$ и $$$14 = 1110_2$$$ равно $$$3$$$, так как $$$0101$$$ и $$$1110$$$ отличаются в $$$3$$$ позициях. Джонни определяет нечестность контеста как сумму таких различий для всех пар соседних участников.
Джонни только что прислал вам последовательность рейтингов и хочет, чтобы вы вычислили нечестность контеста. Вы заметили, что вы получили последовательные целые числа от $$$0$$$ до $$$n$$$. Это странно, но мальчик упорно твердит, что все правильно. Поэтому, помогите ему и вычислите желаемую нечестность для полученной последовательности чисел.
Входные данные состоят из нескольких наборов входных данных. Первая строка содержит одно целое число $$$t$$$ ($$$1 \leq t \leq 10\,000$$$) — количество наборов входных данных. Следующие $$$t$$$ строк содержат описание наборов входных данных.
Первая и единственная строка каждого набора входных данных содержит одно целое число $$$n$$$ ($$$1 \leq n \leq 10^{18})$$$.
Выведите $$$t$$$ строк. Для каждого набора входных данных, вы должны вывести одну строку, содержащую одно целое число — нечестность контеста, если последовательность рейтингов равна $$$0$$$, $$$1$$$, ..., $$$n - 1$$$, $$$n$$$.
5 5 7 11 1 2000000000000
8 11 19 1 3999999999987
Для $$$n = 5$$$, мы вычисляем нечестность следующей последовательности (числа от $$$0$$$ до $$$5$$$, записанные в двоичной системе счисления и дополненные ведущими нулями до одинаковой длины):
Различия равны $$$1$$$, $$$2$$$, $$$1$$$, $$$3$$$, $$$1$$$, соответственно. Поэтому, нечестность равна $$$1 + 2 + 1 + 3 + 1 = 8$$$.
Название |
---|