G. SIS
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

У ЛКШ есть несколько сетевых маршрутизаторов (свитчей). Каждый из них характеризуется целым числом $$$a_i$$$ — серийным номером модели $$$i$$$-го свитча.

Админ Артем хочет из них сконструировать сеть «SIS», расположив свитчи в разных точках базы. Между свитчами с номерами $$$i$$$ и $$$j$$$ можно поднять канал, который будет обладать уровнем помех $$$a_i \oplus a_j$$$, где $$$\oplus$$$ обозначает побитовое исключающее или (xor).

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

Однако, не всё так просто: Артем постоянно работает над совершенствованием сети. Изначально, в сети есть $$$0$$$ свитчей, после чего он последовательно по одному добавляет новые свитчи. После добавления нового свитча сеть может быть перестроена произвольным образом: Артем может убрать и добавить произвольное число каналов между свитчами.

Требуется после каждого добавления свитча определять минимальный суммарный уровень помех в оптимальной сети.

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

В первой строке дано одно целое число $$$n$$$ ($$$2 \le n \le 100\,000$$$) — суммарное количество свитчей, которые в итоге будут добавлены в сеть.

В следующей строке даны $$$n$$$ целых чисел $$$a_i$$$ ($$$0 \le a_i \le 200\,000$$$) — серийные номера свитчей, в порядке их добавления в сеть.

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

Выведите $$$n$$$ целых чисел: минимальный суммарный уровень помех в оптимальной сети после каждого добавления.

Пример
Входные данные
6
4 0 2 2 9 4
Выходные данные
0
4
6
6
15
15